-
Docker Springboot 컨테이너 만들기Docker 2021. 12. 25. 09:07728x90
spring boot 로 구현한 api 서버를 도커로 배포하기로 하였음
다음과 같은 Dockerfile 생성
# openjdk8을 기반 이미지로 설정, jdk 로 안하고 경량화 위해 jre 로 해도 됨 FROMopenjdk:8-jdk-alpine # Make port 13080 available to the world outsie this container EXPOSE 13080 # build시 사용되는 변수 설정 ARGJAR_FILE=target/*.jar # 컨테이너에 파일 복사 COPY${JAR_FILE}app.jar # 실행 명령 정의 ENTRYPOINT["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
이후 dockerfile 존재하는 위치로 이동후 도커 파일 빌드한다.
docker build -t springboot:test .
실행은 다음과 같다. 각 옵션의 자세한 사항은 도커 매뉴얼 참고
아래 명령어는
-p 13080 포트를 호스트와 내부 컨테이너 연결한다는 것
-d 데몬 이용해 백그라운드에서 실행
-i -t 는 -it 으로 줄일수 있고, 터미널과 컨테이너가 연결되도록 한다는 의미
docker run -i -t -d -p 13080:13080 springboot:test
맨 처음위 위와같이 실행햇는데 컨테이너가 바로 종료됐음
디비 연결정보를 잘못적어 디비 연결 하지못해 spring boot 부팅이 안됐던것
로그 보기가 어려워 다음과 같이 변경해 로그 보고 수정 했음
그러면 shell에 로그 프린트 된다.
docker run -p 13080:13080 springboot:test
도커가 잘 떠잇는지 확인한다.
docker ps
아래와 같이 출력된다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6105e03b844b springboot:test "java -Djava.securit…" 16 hours ago Up 7 minutes 0.0.0.0:13080->13080/tcp, :::13080->13080/tcp brave_panini
도커 컨테이너 내부로(bin/sh 이용) 접속하려면 위 출력 결과물의 container id를 이용하면 된다.
docker exec -it 6105e03b844b /bin/sh
728x90'Docker' 카테고리의 다른 글
docker 이미지 파일로 공유 (0) 2022.01.24 Docker 운영 명령어 (0) 2022.01.19 Docker mariadb 로컬에 디비 연동하기 (0) 2021.12.25 docker 컨테이너 접속하기 (0) 2021.08.03