이재홍의 언제나 최신 Docker - Unit 4.3 build 명령으로 이미지 생성하기

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

Docker 이미지 생성하기

이재홍 http://www.pyrasis.com

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         SIZE
hello        0.1       8307ff628ec8   9 seconds ago   170MB
ubuntu       22.04     2dc39ba059dc   7 days ago      77.8MB

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
9f4bb4c4a3d8   hello:0.1   "nginx"   11 seconds ago   Up 10 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   hello-nginx

hello-nginx 컨테이너가 실행되었습니다.

웹 브라우저를 실행하고, http://<호스트 IP>:80으로 접속합니다. Welcome to nginx! 페이지가 표시될 것입니다.

macOS, Windows에서 Docker Desktop을 사용한다면?
웹 브라우저를 실행하고, http://127.0.0.1로 접속합니다. Welcome to nginx! 페이지가 표시될 것입니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

2022-10-03