클라우드/도커

[도커] 도커 11: 도커 컴포즈 2

KyuminKim 2024. 11. 21. 19:51

지난 시간에 이어 도커 컴포즈를 더 알아보자


Docker compose service의 각 컨테이너 주요 옵션

 

지난 시간 이런 도커 컴포즈 파일을 알아봤다.

version: '3.3'
services:
  db:
    container_name: db
    image: “mysql:5.7”
    networks:
      - testNet
  ubuntu:
    container_name: ubuntu
    image: “ubuntu:22.04”
     volumes:
      - testVol:/home/volumes
    networks:
      - testNet
    command: apt-get update
    depend_on:
      - db
networks:
    testNet:
volumes:
    testVol:

 

여기서 서비스는 각각 도커 컨테이너를 가르킨다고 했다.

 

내부 값들이 어떤 의미를 가지는지 좀더 알아보자

 

image

컨테이너 이미지 지정

 

environment

컨테이너의 환경변수 지정
배열(name=“민수”) 또는 딕셔너리(name: “민수”)로 표현
docker run --env와 동일
 

command

도커파일의 CMD와 동일
 

entrypoint

도커파일의 ENTRYPOINT와 동일
 

ports

포트포워딩
docker run -p와 동일
 

도커 컴포즈 명령어

파일 실행/재시작

$ docker-compose up                         # 포그라운드에서 컨테이너 실행/재시작 (ctrl + c로 종료 시 컨테이너 정지)
$ docker-compose up -d                      # 백그라운드에서 컨테이너 실행/재시작
$ docker-compose -f (컴포즈파일명).yml up       # 도커 컴포즈 파일명을 지정하여 수행
$ docker-compose up (서비스명)                 # 도커 컴포즈 프로젝트 중 특정 서비스의 컨테이너들만 생성/재시작
$ docker-compose -p (프로젝트명) up             # 도커 컴포즈 프로젝트를 지정하여 수행

 

$ docker-compose run (서비스명)              # 도커 컴포즈 프로젝트 중 특정 서비스의 컨테이너만 생성 
$ docker-compose scale (서비스명)=(숫자)      # 도커 컴포즈 프로젝트 중 특정 서비스의 수 조정

 

도커 컴포즈 조회

$ docker-compose ps         # 프로젝트 조회
$ docker-compose -f (파일명) ps    
  # 프로젝트에 docker-compose.yaml이 아닌 형식의 도커 컴포즈 파일이 있을 때 파일을 지칭하여 조회
 
 

도커 컴포즈 파일 실행 종료

$ docker-compose down               # 도커 컴포즈 프로젝트 중 모든 컨테이너, 네트워크 정지 후 삭제
$ docker-compose stop  (서비스)      # 특정 서비스에 속한 컨테이너들 정지
 

다음 시간에는 포트 포워딩에 대해 알아보자!