도커(docker) Dockerfile 을 이용한 centos8 + java17 + tomcat9 사용하기
도커파일을 아래 내용으로 만듭니다.
$ vi Dockerfile FROM centos:8 MAINTAINER naya :wq
.docker build 명령으를 통해 tag를 통해 REPOSITORY 이름을 설정하고 현재 폴더에 Dockerfile 이용해 빌드 실행
기존 모두 초기화후 다시실행하려면 옵션 --no-cache 추가
$ docker build --no-cache --tag centos8 ./
$ docker build --tag centos8 ./ Sending build context to Docker daemon 2.048kB Step 1/2 : FROM centos:8 8: Pulling from library/centos a1d0c7532777: Pull complete Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 Status: Downloaded newer image for centos:8 ---> 5d0da3dc9764 Step 2/2 : MAINTAINER naya ---> Running in 3f507c841616 Removing intermediate container 3f507c841616 ---> 1a8c5f144936 Successfully built 1a8c5f144936 Successfully tagged centos8:latest
이미지 확인
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos8 latest 1a8c5f144936 17 seconds ago 231MB centos 8 5d0da3dc9764 2 months ago 231MB
명령어를 추가하면서 build를 주기적으로 해주면서 디버깅 가능
history는 docker 내부 빌드 로직에 따라 알아서 관리가 되며 빌드가 성공적으로 이루어졌을때 다음번 빌드과정에서는 이전 빌드과정을 Skip하게 됨.
명령어에 문제가 있거나 오타가 있거나할시 빌드가 실패되며 다음 빌드시 재시도
컨테이너 내부 java17 다운로드 및 디폴트 디렉토리 설정
$ vi Dockerfile ... ... WORKDIR /usr/local/src # java17 install RUN yum -y install wget curl RUN wget https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_linux-x64_bin.tar.gz RUN tar xvf openjdk-17_linux-x64_bin.tar.gz RUN mv jdk-17 /opt/ RUN echo "export JAVA_HOME=/opt/jdk-17" >> ~/.bashrc RUN echo "export PATH=$PATH:$JAVA_HOME/bin " >> ~/.bashrc RUN source ~/.bashrc RUN echo $JAVA_HOME # tomcat9 install RUN wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.55/bin/apache-tomcat-9.0.55.tar.gz RUN tar -xvzf apache-tomcat-9.0.55.tar.gz RUN mv apache-tomcat-9.0.55 tomcat9 # tomcat 실행 (안됨) #WORKDIR /usr/local/tomcat9 #EXPOSE 8080 #CMD ["./bin/startup.sh", "run"]
최종 docker image 확인
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos8 latest 2b55baf73383 2 minutes ago 1.15GB centos 8 5d0da3dc9764 2 months ago 231MB
컨테이너 시작 및 접속
$ docker run -it -p 8089:8080 --name tomcat9 centos8
전체 Dockerfile
FROM centos:8 MAINTAINER naya WORKDIR /usr/local/src # java17 install RUN yum -y install wget curl RUN wget https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_linux-x64_bin.tar.gz RUN tar xvf openjdk-17_linux-x64_bin.tar.gz RUN mv jdk-17 /opt/ RUN echo "export JAVA_HOME=/opt/jdk-17" >> ~/.bashrc RUN echo "export PATH=$PATH:$JAVA_HOME/bin " >> ~/.bashrc RUN source ~/.bashrc # tomcat9 install RUN wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.55/bin/apache-tomcat-9.0.55.tar.gz RUN tar -xvzf apache-tomcat-9.0.55.tar.gz RUN mv apache-tomcat-9.0.55 /usr/local/tomcat9 # tomcat 실행 안됨 -> 수동으로 #WORKDIR /usr/local/tomcat9/bin #EXPOSE 8080 #CMD ["startup.sh", "run"]