여러 개의 docker 컨테이너들을 관리하는 도구
한 번의 명령어로 여러 개의 컨테이너를 한번에 실행하거나 종료할 수 있다
docker compose up-d
: YAML 파일에 정의된 서비스 생성 및 시작
docker compose ps
: 현재 실행중인 서비스 상태 표시
docker compose build
: 현재 실행중인 서비스의 이미지만 빌드
docker compose logs
: 실행 중인 서비스의 로그 표시
docker compose down
: YAML 파일에 정의된 서비스 종료 및 제거
# docker-compose.yml
version: '3'
services:
hitchecker:
build: ./app
image: hitchecker:1.0.0
ports:
- "8080:5000"
redis:
image: "redis:alpine"
build: ./app
: build 옵션이 있는 hitchecker 서비스만 빌드
: ./app 디렉터리에 있는 dockerfile을 사용해 이미지를 빌드
: hitchecker 컨테이너의 경우 사용자가 개발한 애플리케이션이기때문에 실행 시 빌드 필요image: hitchecker:1.0.0
: 빌드된 이미지를 hitchecker:1.0.0 태그로 저장redis
: redis의 경우 외부의 이미지를 다운 받아서 실행
hitchecker:1.0.0
: 이미지가 있는 경우 그대로 사용, 없는 경우 build 경로의 Dockerfile 을 사용해 이미지 빌드
: 소스코드가 변경되었어도 이미지가 이미 있는 경우에는 해당 이미지를 우선적으로 사용하기 때문에 이미지를 다시 빌드해야함 -> 이미지의 태그를 수정하거나 도커 컴포즈에서 별도의 옵션을 주어야함!!
docker compose up -d --build
: 로컬에 이미지가 있어도 해당 이미지를 제거하고 다시 새로운 이미지로 빌드
docker compose down -v
: 컴포즈 및 볼륨 삭제