도커(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"]