티스토리 뷰
1️⃣ 도커 이미지 생성
1) jar 파일 생성
- 각자의 환경에 맞게 jar 파일을 build 해주면 된다. 나의 경우엔 gradle 프로젝트로 아래와 같이 build 하여 jar 파일을 생성했다. ( 프로젝트폴더/build/libs 폴더에 jar 파일 생성)
gradle bootJar
2) Dockerfile 작성
- jar 파일 위치를 잡아주어야겠지만 그냥 / 하위에 옮겼다
FROM adoptopenjdk/openjdk11 #기본이미지
EXPOSE 9005 #어플리케이션이 실행 될 포트
ADD build/libs/test-0.0.1-SNAPSHOT.jar /test.jar #jar 파일 복사 ADD 호스트 위치 도커위치 적어준다.
ENTRYPOINT ["java", "-jar", "/test.jar"] #컨테이너 실행 시 자동으로 실행 할 명령어
3) Docker 이미지 빌드
#Dockefile이 있는 위치로 이동
$ docker build -t 이미지명:버전 .
#예
#docker build -t testimage:0.1 .
2️⃣ 컨테이너 실행
- adoptopenjdk/openjdk11를 기반으로 이미지를 생성할 때 컨테이너 내부의 파일 구조가 어떤지를 몰라 볼륨 위치를 어떻게 잡아야 할 지 몰랐는데 adoptopenjdk/openjdk11 이미지는 linux 파일 구조와 동일하다.
- volume 위치를 잡을 때 아래 이미지를 참고하여 볼륨을 잡으면 된다.
컨테이너 생성 명령어
docker run -p 9005:9005 --network test_network -v C:\dev\docker\volume\log:/var/log -v C:\dev\docker\properties:/app -e SPRING_CONFIG_LOCATION=/app/ --name test testimage:0.1
1) --network test_network
다른 컨테이너(예 : db 컨테이너) 와 해당 컨테이너를 같은 네트워크로 묶어주기 위해
2) -v C:\dev\docker\volume\log:/var/log
jar 파일 내에서 로그를 /var/log에 생성하고 이 로그를 host 에서도 볼 수 있도록 host의 C:\dev\docker\volume\log 위치로 볼륨을 잡아 주었다.
3) -v C:\dev\docker\properties:/app
컨테이너 실행 시 외부에서 properties를 주입 할 수 있도록 호스트의 C:\dev\docker\properties 에 application.yml 을 넣어주고 볼륨을 /app로 잡아주었다.
4) -e SPRING_CONFIG_LOCATION=/app/
- jar 파일 실행시 환경변수로 properties 위치를 잡아 /app 하위에 있는 application.yml을 참조할 수 있도록 설정
5) -name test_ container
- 컨테이너 명 설정
6) testimage:0.1
- 사용할 이미지
'인프라 > docker' 카테고리의 다른 글
[jenkins/젠킨스] docker로 jenkins 환경 구축하기 (1) | 2023.07.08 |
---|---|
[docker/도커]Linux에서 docker 실행 시 permission denied/ docker: Got permission denied while trying to connect to the Docker daemon socket (0) | 2023.06.06 |
[docker/도커] 도커 허브 사용하기 /도커 이미지 배포 (0) | 2023.06.06 |
[docker/도커] volumes 와 Bind Mounts (볼륨 및 바인드 마운트) (0) | 2023.06.05 |
[docker/도커] database/backend/frontend 환경 구축하기 (0) | 2023.06.05 |
- Total
- Today
- Yesterday
- react
- 자바
- softeer java
- springboot
- java
- 현대
- softeer
- 스프링
- tomcat
- 자바코테
- Linux
- Docker
- 아파치카프카
- mysql
- 톰캣
- 코딩테스트
- Spring
- 현대오토에버
- 코테
- javascript
- 전자정부프레임워크
- 쿠버네티스
- 오토에버코테
- 현대코테
- Kubernetes
- centos
- 자바스크립트
- 리액트
- 도커
- java 코테
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |