[Docker] 7. 도커 컨테이너 연결하기 (nginx, mongoDB 연결)

도커로 이미지를 생성할 때 필요한 프로그램, 예를 들면 웹 서버, DB 등의 프로그램들을 모두 설치할 수도 있지만 보통은 프로그램별로 이미지를 생성 후 컨테이너화해서 연결한다.

이 글에서는 nginx 웹 서버와 MongoDB의 이미지를 생성 후 연결해보도록 하겠다.

우선 MongoDB 이미지를 생성한다.

docker run --name db -d mongo
cs

필자의 경우 80 포트는 이미 우분투 host os에서 nginx 서버로 돌아가고 있기 때문에 8888 포트를 열어주어서 도커의 80 포트와 연결하였다.

docker run --name web --8888:80 --link db:db nginx
cs

-p 8888:80 에 주목하자. -p 옵션은 호스트의 포트와 도커의 가상 포트를 연결한다. 형식은 -p <Host Port>:<Docker Port>이다. 필자는 이 부분을 모르고 8888:8888로 연결했다가 같이 스터디하는 친구에게 혼쭐이 났다. 도커에 대한 개념을 확실하게 알고 했어야 했는데..

이 명령어를 실행하면 nginx 최신 이미지를 받고 앞서 실행한 db 컨테이너(mongoDB)와 연결하여 web 이라는 이름의 nginx 서버를 컨테이너로 실행한다.

일반적으로 IP를 통해서 브라우저로 접속할 경우 포트를 입력하지 않으면 80 포트로 자동 접속한다. nginx 서버를 그렇게 연결하고 싶다면 -p 80:80 옵션으로 실행하면 된다.


브라우저로 <IP>:<호스트 연결 포트>로 접속하면 nginx 기본 페이지가 출력됨을 확인할 수 있다!

이 nginx 컨테이너는 mongoDB 컨테이너와 연결되어 있어서 web 컨테이너 안에서 db:27017 주소로 db 컨테이너의 mongoDB에 접속할 수 있다.


댓글 없음:

Powered by Blogger.