초보자를 위한 Docker 기본 (4)
Updated:
본 포스팅을 읽기전에,
Docker가 설치되어 있지 않다면 Docker를 미리 설치하고 본 포스팅을 읽으며 따라하면 훨씬 더 효과적이에요~
Dockerfile 만들기
이번글에서는 앞 시리즈의 작업들을 Dockerfile로 만들어 봅니다.
테스트 페이지 작성
아래와 같은 내용으로 test.jsp 파일을 만듭니다.
<%@ page import="java.net.*" %>
<% out.println("<h1>Welcome</h1>"); %>
<% out.println("This hostname is [" + InetAddress.getLocalHost().getHostName() + "] and IP [" + InetAddress.getLocalHost().getHostAddress() + "]" ); %>
Dockerfile 만들기
메모장을 열어 “Dockerfile”이란 파일명으로 아래 내용을 작성합니다.
FROM tomcat:8
RUN apk update && apk upgrade # 이 line은 굳이 없어도 됨
COPY test.jsp ${CATALINA_HOME}/webapps/ROOT
이미지 빌드하기
앞에서 작성한 Dockerfile을 기반으로 이미지를 빌드합니다.
# docker build -t [repository명]/mytomcat:v0.1 .
# [repository명]은 docker hub의 개인 저장소(ID)이며, 여기서는 로컬 컴퓨터의 repository에 이미지를 만든다.
# 마지막의 점(.) 은 Dockerfile의 현재 위치를 나타낸다.
$ docker build -t aramidhwan/mytomcat:v0.1 .
Sending build context to Docker daemon 8.704kB
Step 1/2 : FROM tomcat:8
8: Pulling from library/tomcat
Digest: sha256:2c90303e910d7d5323935b6dc4f8ba59cc1ec99cf1b71fd6ca5158835cffdc9c
Status: Downloaded newer image for tomcat:8
---> 4e7840b49fad
Step 2/2 : COPY test.jsp ${CATALINA_HOME}/webapps/ROOT
---> 1d4f7426abb1
Successfully built 1d4f7426abb1
Successfully tagged aramidhwan/mytomcat:v0.1
내가 만든 이미지로 Docker 컨테이너 생성
앞에서 만든 이미지로 docker 컨테이너를 띄어 봅니다.
$ docker run –d –p 80:8080 --name tomcat_test aramidhwan/mytomcat:v0.1
305b88779cf466ab0ddffee03d75f440c8d50ddbd05f1867903d07f1d287d4c7
컨테이너가 정상적으로 생성 & 실행되었는지 확인합니다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
305b88779cf4 aramidhwan/mytomcat:v0.1 "catalina.sh run" About a minute ago Up About a minute 0.0.0.0:80->8080/tcp tomcat_test
이상으로, Dockerfile을 활용한 이미지 빌드를 해보았습니다.