프로젝트 순서
1) spring boot app 작성
2) 테스트
3) maven 프로젝트 build -> 압축파일인 .jar
파일 만들어짐
4) dockerfile 생성
5) docker 이미지 생성
6) 이미지에 해당하는 도커에서 실행될 컨테이너 프로세스 생성
7) docker 컨테이너 프로세스 시작
5,6,7 이 잘되기 위해서는 Dockerfile(도커 설정파일)이 필요하다. -> 프로젝트 경로에 넣어두기
이미지 만들기
# openjdk 이미지가 컨테이너에 설치 이미지이름:태그
FROM openjdk:8
# 원본 파일 이름 (pom.xml에 설정돼있는), 압축파일을 target의 경로에서 찾음
ARG JAR_FILE=out/artifacts/Catalogs_jar/Catalogs.jar
# 원본파일 이름이 기니까 catalog.jar라는 이름으로 도커에 갖다 놓겠다.
COPY ${JAR_FILE} catalog.jar
# ENTRYPOINT 도커 파일의 명령어로 실행될 문장을 적어줌, [] 배열
ENTRYPOINT ["java","-Xms1024m","-Xmx1024m","-jar","/catalog.jar"]
docker build -t catalog:one .
네트워크 그룹 생성
:
docker network create testnetwork
컨테이너 생성
docker run -d --name catalog1 --network testnetwork -p 9001:8081 catalog:one
run : 도커 프로세스를 생성 및 시작
-d : daemon , backgrond로 처리하라. 컨테이너를 만들고 시작하는데 시간이 걸리니까 로그메시지들이 나오는걸 백그라운드로 처리해라
--name : 컨테이너 이름 지정
--network : 어떤 네트워크 그룹에 참여시킬지 결정
-p : 포트포워딩 내부에서는 9001:8081
-> 8081을 쓰지만 외부에서 포트바인딩(접근)을 할때는 9001번을 사용하라~ 9001에 대한 실제 포트번호는 8081인것임
catalog:one : 이미지 이름을 부여, 이미지에 해당하는 프로세스를 만듦
이미지 한개로 컨테이너를 여러개 만들 수 있다.
docker ps : ps = process, 컨테이너 프로세스
docker rmi 이미지명 : 이미지 삭제
docker network ls : ls = list 네트워크 목록 확인
docker network inspect 네트워크명 : 네트워크 내용 살펴보기
9002:8082
http://컨테이너이름:9001/catalogs/customerinfo/id1