저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
Docker 이미지 생성하기
이재홍 http://www.pyrasis.com 2014.08.02 ~ 2014.09.20
build 명령으로 이미지 생성하기
Dockerfile을 작성하였으면 이미지를 생성합니다. Dockerfile이 저장된 example 디렉터리에서 다음 명령을 실행합니다.
~/example$ sudo docker build --tag hello:0.1 .
docker build <옵션> <Dockerfile 경로>
형식입니다. --tag
옵션으로 이미지 이름과 태그를 설정할 수 있습니다. 이미지 이름만 설정하면 태그는 latest로 설정됩니다.
잠시 기다리면 이미지 파일이 생성됩니다. 이미지 목록을 출력합니다.
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 e54ca5efa2e9 Less than a second ago 276.1 MB
ubuntu latest e54ca5efa2e9 Less than a second ago 276.1 MB
hello 0.1 2031ee0736e8 9 minutes ago 298.4 MB
hello:0.1 이미지가 생성되었습니다. 이제 실행을 해봅니다.
$ sudo docker run --name hello-nginx -d -p 80:80 -v /root/data:/data hello:0.1
-d
옵션은 컨테이너를 백그라운드로 실행합니다.-p 80:80
옵션으로 호스트의 80번 포트와 컨테이너의 80번 포트를 연결하고 외부에 노출합니다. 이렇게 설정한 뒤 http://<호스트 IP>:80에 접속하면 컨테이너의 80번 포트로 접속됩니다.-v /root/data:/data
옵션으로 호스트의 /root/data 디렉터리를 컨테이너의 /data 디렉터리에 연결합니다. /root/data 디렉터리에 파일을 넣으면 컨테이너에서 해당 파일을 읽을 수 있습니다.
실행된 컨테이너 목록을 출력합니다.
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c06a0bebab6 hello:0.1 nginx 10 minutes ago Up 10 minutes 443/tcp, 0.0.0.0:80->80/tcp hello-nginx
hello-nginx 컨테이너가 실행되었습니다.
웹 브라우저를 실행하고, http://<호스트 IP>:80으로 접속합니다. Welcome to nginx! 페이지가 표시될 것입니다.
Mac OS X, Windows에서 Boot2Docker를 사용한다면?
Boot2Docker는 가상 머신 안에 도커를 실행한 상태이기 때문에 호스트 IP로는 nginx에 접속할 수 없습니다. 따라서 다음 명령을 실행하여 Boot2Docker의 가상 머신 IP를 알아냅니다(Windows에서는 Git Bash를 실행한 뒤 명령을 실행합니다).
$ boot2docker ip
The VM's Host only interface IP address is: 192.168.59.103
웹 브라우저를 실행하고, http://<Boot2Docker VM의 IP>:80으로 접속합니다. Welcome to nginx! 페이지가 표시될 것입니다.
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.