1 분 소요


1. jar파일 패키징

1. gradle

  • gradle 매뉴 - build - bootJar 실행

    image-20221024031754248

  • project 디렉토리의 /build/libs에 jar파일 생성

    image-20221024031742396

2. maven

mvn package

명령어 실행하면 target/ 위치에 jar파일 생성됨.

2. Dockerfile 작성

### base가 되는 이미지
FROM openjdk:8-jre

### 위치: 컨테이너 밖, 컨테이너 안
### 버전은 계속 바뀔 것이기 때문에 프로젝트명 뒤에 * 사용하면 편리함
COPY build/libs/inandout-*.jar app.jar

### 컨테이너 시작시 실행할 스크립트
ENTRYPOINT ["java", "-jar", "app.jar"]

  • Dockerfile의 위치는 루트(컨벤션)

3. 이미지 생성 및 로컬에서 실행해보기

docker build (-f Dockerfile 이름) -t (이미지 이름) .(도커 파일로의 상대경로)
docker run -p 8080:8080 이미지명

부트가 실행되면 로컬에서도 도커 이미지를 활용하여 부트에 접속할 수 있음.

4. 이미지 Hub에 push

  • DockerHub(hub.docker.com) 에 내 Repository 만들기

    • 파일명은 계정이름이 자동으로 앞에 붙고 /내가 만들 Repo이름이 붙음.
    • public으로 해야 로그인 없이 접근 가능
    ### 테그 변경 명령어
    docker tag local-image:tagname new-repo:tagname
      
    ### hub에 push 명령어
    docker push Repo이름:tagname ### Repo이름은 계정이름/만든Repo이름이 전체가 들어가야함
    

5. 이미지 pull 및 실행

  1. AWS에 접속 후 Docker 설치

  2. 도커 로그인 (모든 명령어는 작동이 안되는 경우 sudo로 관리자 권한 부여)

    docker login
    
    • 아이디, 비밀번호 입력하면 로그인 됨
  3. 도커 이미지 pull

    docker pull Repo이름:tagname
    
  4. 도커 이미지 실행

    docker run (-d) -p 8080:8080 --name 컨테이너이름(처음 실행 시 붙여줄 이름) 이미지ID (-d는 백그라운드 실행)
    
    # 해당 레포지토리에 특정되는 이미지가 하나일 경우 사용가능하며, 이 경우 tag가 latest로 실행됨. -> Repository:latest로
    docker run (-d) -p 8080:8080 --name 컨테이너이름(처음 실행 시 붙여줄 이름) 레포지토리
       
    # 해당 레포지토리에 특정되는 이미지가 없을 경우(즉 여러개 있을 경우) 이미지를 특정해주어야 함.
    docker run (-d) -p 8080:8080 --name 컨테이너이름(처음 실행 시 붙여줄 이름) 레포지토리/tag이름
    
  5. 컨테이너 실행

    docker (container) start 컨테이너 ID
    
  6. 컨테이너 정지

    docker (container) stop 컨테이너 ID
    
  7. 컨테이너 확인

    docker ps # 실행중인 도커 컨테이너
    docker ps -a # 전체 컨테이너
    
  8. 컨테이너 접속

    docker attach 컨테이너ID
    
  9. 컨테이너 삭제

    docker rm 컨테이너ID
    

마지막 수정일시: 2022-11-25 22:00

카테고리:

업데이트:

댓글남기기