도커 이미지 생성부터 도커로 war 배포하는 데 필요한 명령어를 정리해보려고 한다.
이 포스트에서는 docker 이미지 생성까지 다루고 다음 포스팅에서는 만든 이미지로 docker 배포하는 과정을 담을 예정이다.
그러면.. 레츠기릿!
#touch dockerImage
#vim dockerImage
위에서 생성한 dockerImage파일에 아래 내용 입력 후 저장
!. 여기서 #은 주석
# tomcat에서 제공하는 tomcat 8.5ver + java jre8인 이미지 가져옴
FROM tomcat:8.5-jre8
# 톰캣 타임존 설정
RUN ["rm", "/etc/localtime"]
RUN ["ln", "-sf", "/usr/share/zoneinfo/Asia/Seoul", "/etc/localtime"]
COPY setenv.sh /usr/local/tomcat/bin
#추후 간단한 파일 편집을 위해 컨테이너 내부에 vim 설치
RUN ["apt-get", "update"]
RUN ["apt-get", "install", "vim", "-y"]
#컨테이너 내부에 필요한 파일을 복사한다. 예를들어 war, 위 타임존 세팅할 때 사용할 setenv.sh 파일
#COPY {복사할 파일} {복사하여 붙여넣을 컨테이너 내 위치}
COPY ./service.war /usr/local/tomcat/webapps
# 컨테이너 외부에서 사용하는 포트 지정
EXPOSE 8080
#start tomcat
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
참고로 setenv.sh 파일에는 아래 내용이 있다.
#!/bin/bash
export CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+9"
docker build -t {이미지 태그} -f ./{도커 파일} {빌드된 파일 위치}
# docker build -t hyun/service:1.0 -f dockerImage .
docker build의 명령어 경우 현재 경로의 Dockerfile을 빌드한다.
위 명령어의 -f 옵션이 사용할 이미지 파일을 지정하는 것으로 같은 경로 내 여러 도커 파일을 생성하여 사용하고 싶은 경우에 활용할 수 있다.
docker save -o {내보낼 파일명 및 확장자} {이미지 태그}
# docker save -o dockerImage.tar hyun/service:1.0