Docker 환경세팅 전에 설치가 안되신 분들은 아래 URL로 접속하여 설치를 먼저 진행해주세요.
※ 도커 연동할 프로젝트 환경
- 개발목적 : RestApi 구현 후 도커로 배포 및 실행
- 개발언어 : Java
- 개발환경 : SpringBoot, Maven, Mybatis
- 사용툴 : intellij
모든 명령어는 CMD(명령 프롬프트)에서 실행한다.
1. 네트워크 설정
- 도커환경에서 springboot와 mysql을 연동하기 위한 설정이다.
1) 도커 네트워크를 추가 생성.
docker network create springboot-mysql-net
2) 도커 네트워크 생성 확인
docker network ls
2. 도커 프로젝트 이미지 생성
1) intellij의 우측 상단에 Maven 탭을 클릭한다.
2) 'package'를 더블클릭하여 실행한다.
3) '[최상위_프로젝트_경로]/target' 위치에 'restApi-1.0-SNAPSHOT.jar' 파일이 생성되었을 것이다.
( * 일반적으로 '[최상위_프로젝트_경로]' 위치는 target, src 폴더보다 앞에 있다.)
- jar파일명은 pom.xml에서 변경할 수 있다.
<groupId>org.example</groupId>
<artifactId>restApi</artifactId>
<version>1.0-SNAPSHOT</version>
jar파일명은 artifactId와 version을 합친 것이다.
4) 도커파일 작성
- 저장경로 : '[최상위_프로젝트_경로]' 위치에 저장한다.
# SpringBoot Rest api Project
FROM openjdk:8-jdk-alpine
COPY /target/restApi-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]
※ 도커파일 내용 설명
- FROM = 이미지이름:태그
- COPY = 파일복사
- ENTRYPOINT = 컨테이너 실행 후 스크립트 실행
5) CMD화면을 열고 도커파일이 존재하는 경로로 이동한다.
- 예시) cd C\users\home\'[최상위_프로젝트_경로]'
6) 도커 이미지 생성 명령어 실행
docker build --tag restapi-images:0.1 .
7) 도커 이미지 생성 확인
docker images
8) 도커 컨테이너 생성 및 실행
docker run -p 8080:8080 --name restapi-container --network springboot-mysql-net -d restapi-images:0.1
9) 도커 컨테이너 실행 확인
docker container list
3. Mysql 설치 및 이미지 생성
1) mysql 도커 이미지 생성
docker pull mysql:8.0.30
2) mysql 이미지 생성 확인
docker images
3) mysql 컨테이너 생성 및 실행
docker run --name mysql-container -p 3306:3306 --network springboot-mysql-net -e MYSQL_ROOT_PASSWORD=[root비밀번호입력] -e MYSQL_DATABASE=[DB명] -d mysql:8.0.30
4) mysql 컨테이너 실행 확인
docker container list
4. 테스트
'localhost:8080/test/testId=2' → 본인이 만든 프로젝트의 URL이어야 한다.
정상적으로 붙는 것을 확인할 수 있다. 그러나 필자는 테이블생성을 안해줘서 에러가 뜨고 있다.