2022. 6. 16. 13:28ㆍTech Note
앞서 도커를 설치하고 CentOS7 이미지까지 Pull 받아오는데 성공했다고 끝난게 아니다.
이제 받아온 이미지를 컨테이너로 올려야 한다.
도커 이미지는 언어로 치면 클래스라고 생각하면 된다.
재사용 할 수 있도록 만들어진 이미지 형태이며 실제로 구동을 위해서는
해당 이미지를 불러와서 컨테이너로 생성해주어야한다.
이미지와 컨테이너의 개념을 잘 알고넘어가야 후에 서술한 내용에 대해서도 이해하기 편하다.
이제 컨테이너를 생성해보도록 하자.
기존에 생성해둔 CentOS:7 이미지가 있으니 해당 이미지를 이용해서 생성 할 예정이다.
생성 전에 미리 도커 내의 네트워크 구성을 해두었기 때문에 짚고 넘어가자.
간략한 구성도는 아래와 같다.
웹 서비스(Container 1)와 데이터베이스(Container 2)를 구분지어 컨테이너를 생성한다.
외부 사용자가 Container 1의 80 port로 접속 할 수 있도록 포트포워딩을 할 예정이다.
Container 1과 Container 2는 동일 네트워크(mynetwork)에 소속시켜 양방향 통신이 자유롭게 되도록 설정한다.
Container 2는 외부 관리자가 접속 할 수 있도록 3306 port를 open 해둔다.
구성도와 같이 진행하기 위해 네트워크를 생성해준다.
생성 후 아래와 같이 확인되며 컨테이너 생성 시 해당 네트워크에 연결해주면 된다.
>docker network create --driver=bridge --subnet=172.16.0.0/24 mynetwork
# 생성된 네트워크 목록
>docker network list
NETWORK ID NAME DRIVER SCOPE
a11bee88d7cd mynetwork bridge local
네트워크 생성을 완료하였으니, 컨테이너를 생성해준다.
>docker run --privileged -itd \ # docker docs 참조
--name container1 \ # container명
--net mynetwork \ # 소속 network
--ip 172.16.0.100 \ # IP 설정
-p 80:80 \ # Port Fowarding
centos:7 \ # Image
/sbin/init # Commang Line
# 생성된 컨테이너 목록
>docker container list
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
652d0883df23 centos:7 "/bin/bash" 13 seconds ago Up 12 seconds 0.0.0.0:80->80/tcp container1
# container 실행 시 CentOS 7의 경우 Failed D-BUS 이슈가 있으므로 아래와 동일하게 실행
>docker exec -it container1 /bin/bash
위와 같이 목록이 확인되면 컨테이너 생성까지 완료된다.
[참조링크]
https://docs.docker.com/engine/reference/commandline/
docker network create
docker network create: Creates a new network. The `DRIVER` accepts `bridge` or `overlay` which are the built-in network drivers. If you have installed a third party or your own custom...
docs.docker.com
'Tech Note' 카테고리의 다른 글
도커를 활용한 서비스 배포하기 (무중단 배포 시나리오 작성) #5 (0) | 2022.06.17 |
---|---|
도커를 활용한 서비스 배포하기 (save, load, export, import) #4 (0) | 2022.06.16 |
도커를 활용한 서비스 배포하기 (image search, pull) #2 (1) | 2022.06.15 |
도커를 활용한 서비스 배포하기 (rpm 설치) #1 (0) | 2022.06.08 |
크롤링 API 서버 개발 #2 (크롤링, Axios, Cherrio) (0) | 2022.05.15 |