Docker 시작하기 02 - Docker 에서 http 서버 돌리기

Docker 시작하기 02 - Docker 에서 http 서버 돌리기

2018, Sep 05    

지난 포스트에 이어 오늘은 Docker 에서 http 서버를 구동해서 호스트에서 확인해 보도록 하겠습니다.

마침 jekyll 서버를 구동할 필요가 있던터라 jekyll 서버를 돌려보기로 했습니다. 그외에 Node.js 서버나 apache 같은 다른 http 서버들에 있어서도 Docker 과의 연결방식은 비슷하다고 생각합니다.

먼저 jekyll 용 컨테이너를 우분투 이미지를 가지고 생성합니다.

$ docker run -it --name jekyll -p 4000:4000 ubuntu bash

설치시 옵션으로 컨테이너명을 jekyll, 호트스 포트와 컨테이너 포트를 동일하게 4000:4000 으로 바인딩 해주었습니다.

새로운 컨테이너가 생성되면 컨테이너 안에서 jekyll 을 설치합니다. 설치법은 이전 포스트 를 참고 바랍니다.

jekyll 설치가 확인되었다면 컨테이너에서 서버를 실행해 보겠습니다.

저같은 경우는 github page 가 이미 있기 때문에 git clone 으로 컨테이너에 github page 소스를 다운받았습니다.

github page 가 있는 폴더로 이동 후 bundle 로 필요한 gem 들을 설치 후 jekyll s -H 0.0.0.0 으로 jekyll 서버를 실행합니다. 호스트에서 컨테이너 서버로 접속하기 위해 아이피를 0.0.0.0 으로 설정했습니다.

다음단계로 호스트에서 컨테이너로 접속하기 위해 docker machine 이 실행되고 있는 포트를 포워딩 해 주어야 합니다.

윈도우의 실행 - Oracle VM Virtual Box - 설정 - 네트워크 - 고급 - 포워딩 설정 에서 포트를 추가 해줍니다.
컨테이너 생성시 설성했던 것과 동일하게 호스트 포트 4000, 게스트 포트 4000 으로 설정하겠습니다.

alt text

포트 설정후 브라우저에서 localhost:4000 으로 접속하게 되면 서버가 실행되는 것을 확인 할 수 있습니다.