포스트

Docker - docker compose로 dockerfile build하고 생성된 이미지 registry(distribution)/hub에 올리기

1. compose.yml 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
service:
  springBootApplication1:  
    container_name: springBootApplication1
    build: ./subApplication1/.  # dockerfile 경로  
    image: registry.zhyun.kim/springBootApplication1:1  
    # ..
    
  springBootApplication2:  
    container_name: springBootApplication2
    build: ./subApplication2/.  # dockerfile 경로  
    image: registry.zhyun.kim/springBootApplication2:2  
    # ..
        
  • build: dockerfile 경로
  • image: DOCKER_HUB_OR_REGISTRY(DISTRIBUTION)/IMAGE_NAME:TAG_NAME
    • :TAG_NAME은 생략 가능


2. compose build & push

docker hub/distribution(registry)에 로그인 되어있다는 가정 하에 진행

1
docker compose build --push



* push를 제외하고 build 후 실행하기

1
docker compose up --build


* 서버에서 이미지 다시 받아 실행하기

로컬의 dockerfile을 사용하지 않고 서버 이미지를 사용하는 경우

1
docker compose up --pull always
  • --pull 사용 옵션
    • always: 이미지를 항상 다운로드
    • missing: 로컬에 이미지가 없는 경우에만 다운로드
    • never: 이미지를 다운 받지 않음 (무조건 로컬 이미지만 사용)


* compose로 실행한 컨테이너 종료하고 이미지 삭제

1
docker compose down --rmi all
  • --rmi 사용 옵션
    • all: 서버에서 다운받은 이미지와 로컬에서 생성한 이미지를 모두 삭제
    • local: 로컬에서 생성한 이미지만 삭제




참고한 사이트

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.