본문으로 건너뛰기

1. 기본 명령어

1.1 up - 컨테이너 실행

# 모든 서비스 실행
docker compose up

# 백그라운드에서 실행
docker compose up -d

# 특정 서비스만 실행
docker compose up nginx redis

# 컨테이너와 이미지를 모두 재생성
docker compose up --build

# 특정 scale로 서비스 실행
docker compose up --scale web=3

1.2 down - 컨테이너 종료

# 컨테이너와 네트워크 삭제
docker compose down

# 볼륨까지 함께 삭제
docker compose down -v

# 이미지까지 모두 삭제
docker compose down --rmi all

1.3 ps - 컨테이너 상태 확인

# 실행 중인 컨테이너 목록
docker compose ps

# 중지된 컨테이너 포함
docker compose ps -a

2. 로그 관련 명령어

2.1 logs - 로그 확인

# 모든 서비스의 로그 확인
docker compose logs

# 실시간 로그 확인
docker compose logs -f

# 특정 서비스의 로그만 확인
docker compose logs web

# 마지막 100줄만 확인
docker compose logs --tail=100

3. 컨테이너 관리 명령어

3.1 start/stop/restart - 컨테이너 제어

# 컨테이너 시작
docker compose start

# 컨테이너 중지
docker compose stop

# 컨테이너 재시작
docker compose restart

# 특정 서비스만 재시작
docker compose restart web

3.2 exec - 컨테이너 내부 명령 실행

# 컨테이너 내부 쉘 실행
docker compose exec web bash

# 특정 명령 실행
docker compose exec web npm install

# 특정 사용자로 명령 실행
docker compose exec -u root web bash

4. 빌드 관련 명령어

4.1 build - 이미지 빌드

# 모든 서비스 빌드
docker compose build

# 캐시 없이 빌드
docker compose build --no-cache

# 특정 서비스만 빌드
docker compose build web

4.2 pull - 이미지 가져오기

# 모든 서비스의 이미지 pull
docker compose pull

# 특정 서비스 이미지만 pull
docker compose pull redis

5. 구성 관련 명령어

5.1 config - 설정 확인

# 현재 구성 확인
docker compose config

# 구성 오류 검증
docker compose config --quiet

5.2 port - 포트 매핑 확인

# 특정 서비스의 포트 매핑 확인
docker compose port web 8080

6. 고급 명령어

6.1 top - 실행 중인 프로세스 확인

# 모든 서비스의 프로세스 확인
docker compose top

# 특정 서비스의 프로세스만 확인
docker compose top web

6.2 events - 이벤트 스트림 확인

# 실시간 이벤트 모니터링
docker compose events

# 특정 서비스의 이벤트만 확인
docker compose events web

7. 유용한 옵션들

7.1 공통 옵션

# 다른 위치의 compose 파일 사용
docker compose -f docker-compose.prod.yml up

# 프로젝트 이름 지정
docker compose -p myproject up

# 타임아웃 설정
docker compose --timeout 30 down

7.2 환경변수 활용

# 환경변수 파일 지정
docker compose --env-file .env.prod up

# 특정 환경변수 오버라이드
POSTGRES_VERSION=13 docker compose up

8. 실전 사용 예시

8.1 개발 환경 설정

# 개발 환경 시작
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d

# 로그 모니터링
docker compose logs -f web

# 데이터베이스 마이그레이션
docker compose exec web python manage.py migrate

8.2 프로덕션 배포

# 프로덕션 환경 설정으로 시작
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

# 무중단 업데이트
docker compose up -d --no-deps --build web

# 상태 확인
docker compose ps
docker compose logs --tail=100 web

9. 문제 해결 팁

9.1 자주 발생하는 문제

  • 컨테이너가 자동으로 재시작되지 않을 때:
docker compose up -d --force-recreate
  • 네트워크 문제 해결:
docker compose down
docker compose up --force-recreate --renew-anon-volumes

9.2 디버깅

# 상세 로그 확인
docker compose --verbose up

# 구성 검증
docker compose config --quiet

# 특정 서비스 재빌드
docker compose build --no-cache web