가장 빨리 만나는 Docker 6장 - 2. Docker 컨테이너 연결하기
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
Docker 좀더 활용하기
이재홍 http://www.pyrasis.com 2014.08.02 ~ 2014.09.20
Docker 컨테이너 연결하기
Docker로 이미지를 생성할 때 웹 서버, DB 등 필요한 프로그램을 모두 설치할 수도 있지만 보통 프로그램별로 이미지를 생성합니다. 이렇게 프로그램별로 이미지를 생성하고, 컨테이너를 생성했을 때 옆에 있는 컨테이너에 접속할 일이 많습니다. 예를 들면 웹 서버는 DB에 연결하여 데이터를 주고 받아야 합니다.
그림 6-3 Docker 컨테이너 연결
Docker 컨테이너끼리 연결할 때는 docker run
명령에서 --link
옵션을 사용합니다. 먼저 DB 이미지를 컨테이너로 실행합니다. 이번에는 MongoDB를 사용해보겠습니다(docker run 명령은 로컬에 이미지가 없으면 자동으로 이미지를 받아옵니다).
$ sudo docker run --name db -d mongo
DB 컨테이너 이름은 db로 설정하였습니다.
이제 web 컨테이너를 생성하면서 db 컨테이너와 연결합니다. 웹 서버로 사용할 컨테이너는 nginx 이미지로 생성하겠습니다.
$ sudo docker run --name web -d -p 80:80 --link db:db nginx
docker run 명령에서 연결 옵션은 --link <컨테이너 이름>:<별칭>
형식입니다.
컨테이너 목록을 출력합니다.
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3971618834cd nginx:latest nginx About a min Up About a m 0.0.0.0:80->80/tcp web
8d4031106c57 mongo:2.6 /usr/src/mongo/docke 4 minutes a Up 4 minutes 27017/tcp db,web/db
db 컨테이너와 web 컨테이너가 연결되었습니다. web/db라고 표시되는데 web 컨테이너에서 db 컨테이너에 접속할 수 있다는 것입니다.
이제 web 컨테이너 안에서 db:27017
주소로 db 컨테이너의 MongoDB에 접속할 수 있습니다.
mongodb://db:27017/exampledb
컨테이너 안에서 다른 컨테이너에 접속할 때는 <별칭>:<포트 번호>
형식으로 사용합니다.