<aside> 💡 여러 개의 컨테이너들을 관리, 실행하기 위한 "툴"

docker-compose 명령어

현재 위치의 .env를 환경변수로, compose.yaml(권장) 또는 compose.yml를 기본 설정으로 사용한다. 이전 버전과의 호환성을 위해 docker-compose.yaml 또는 docker-compose.yml도 지원한다.

동작 및 옵션 docker-compose docker 대응
도움말 help --help
버전 정보 version --version
Compose 파일 유효성 검사 config
이미지 목록 images images
이미지 빌드 build build
이미지 푸시 push push
이미지 가져오기 pull pull
이미지 삭제 down --rmi all rmi
컨테이너 목록 보기 ps ps
중지된 컨테이너 제거 rm rm
컨테이너 및 서비스 생성 및 시작 up run
컨테이너 및 리소스 중지 및 제거 down
down --volumes stop & rm
컨테이너 강제 종료 kill kill
컨테이너 로그 출력 logs logs
컨테이너 실시간 이벤트 수신 events events
서비스의 컨테이너 개수 설정 scale
실행 중인 프로세스 표시 top top
서비스 생성 create
서비스 시작 start start
서비스 다시 시작 restart restart
서비스 중지 stop stop
서비스 일시 중지 pause pause
서비스 일시 중지 해제 unpause unpause
서비스에서 명령어 실행 exec exec
포트 매핑 정보 확인 port port
일회성 명령어 실행 run run

Compose 파일 작성

YAML(YAML Ain’t Markup Language) 형식을 사용한다.

<aside> ⚠️ YAML은 공백을 사용한 들여쓰기를 통해 데이터 계층을 표현하므로 TAB 금지!

</aside>

Compose 명령어

# docker-compose.yaml 문법 오류 검사
srcs$ docker compose config
yaml: line 212: found character that cannot start any token

# 이미지 빌드
$ docker-compose -f srcs/docker-compose.yaml build

# 컨테이너 생성 및 실행
$ docker-compose -f srcs/docker-compose.yaml up      # --build

# 컨테이너 종료 및 제거
$ docker-compose -f srcs/docker-compose.yaml down

# 이미지 제거
$ docker rmi $(docker images -q)

# 캐시 제거
$ docker system prune -a