Back-End/Spring framework
Spring Boot 애플리케이션 Docker 컨테이너로 배포 (기초)
@deveely
2022. 1. 16. 03:44
반응형
명령어 간략 정리
docker images # 이미지 목록 조회
docker ps # 실행중인 컨테이너 목록 조회 (-a 옵션 시 종료된 컨테이너 목록도 보여줌)
docker kill CONTAINER_ID # 컨테이너 종료
도커 이미지 빌드 명령어
docker build --tag [repo:tag] [Dockerfile path]
e.g.
docker build --tag myservice:0.1
컨테이너 실행 관련 명령어
docker run IMAGE_ID # 이미지ID 기반 새 컨테이너 생성하여 실행
docker run repo:tag # 레파지토리&태그에 해당하는 이미지 기반 새 컨테이너 생성하여 실행
docker start CONTAINER_ID # 기존 생성된 특정 컨테이너를 실행시킴
docker stop CONTAINER_ID # 기존 실행중인 특정 컨테이너를 종료시킴
docker rm CONTAINER_ID # 컨테이너 삭제
docker rmi IMAGE_ID # 이미지 삭제
SpringBoot Dockerfile 예시
- Dockerfile을 작성한다.
- JDK11 환경 사용
- build/libs/app.jar 파일 (Dockerfile 기준 상대경로)을 app.jar라는 이름으로 컨테이너 내부에 추가
- “java -jar app.jar” 명령어 실행 (각 명령어 토큰을 배열 형태로 설정)
FROM openjdk:11
ADD build/libs/app.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
- Dockerfile 이미지로 빌드
- 현재 디렉토리 내 Dockerfile을 app Repository, 0.1 Tag로 빌드한다.
docker build -t app:0.1 .
- 컨테이너 실행
- -d 옵션 : 데몬 모드로 실행 (백그라운드에서 동작)
- -p 옵션 : 호스트 포트로 들어오는 요청을 도커 컨테이너 내부 포트로 포워딩해줌 (호스트:컨테이너)
- 아래 예시에선 5000번 포트로 들어오는 요청이 도커 컨테이너의 8080포트로 포워딩된다.
- 실행할 이미지 : 이미지ID 또는 repo:tag 형태의 이미지 식별자 전달
docker run -d -p 5000:8080 app:0.1
- 컨테이너 접속하여 잘 실행되고 있는지 확인
docker exec -it /bin/bash
ps -ef | grep java
반응형