Docker Compose?
- 다수의 컨테이너를 한 번에 정의하고 관리하기 위한 툴
- 하나의 애플리케이션이 여러 개의 서비스로 구성될 때 환경 설정 파일로 한 번에 실행 가능
- YAML 파일을 통해 하나의 명령어로 모든 서비스 관리 지원
Docker Compose 주요 기능
- 다중 컨테이너 관리 : 여러 컨테이너를 하나의 설정 파일에서 정의하고 함께 실행 및 종료 가능
- 서비스 종속성 관리 : 컨테이너 간의 의존 관계를 설정하고 자동으로 시작 순서 지정
- 알관된 환경 제공 : 개발, 테스트, 배포 환경에서 동일한 구성 사용
- 명령어 단순화 : 단일 명령어로 모든 서비스의 빌드, 시작, 중단, 로그 조회 등 관리
Docker Compose 장점
- 간편한 멀티 컨테이너 설정
- YAML 파일 하나로 모든 설정 관리
- 서비스 간 연결과 의존성을 쉽게 정의 가능
- 일관성 보장
- 동일한 환경에서 애플리케이션을 실행하여 환경 의존성 문제 감소
- 빠른 개발 및 테스트
- 여러 서비스가 포함된 환경을 빠르게 설정하고 반복적으로 실행 가능
- 확장성
- 다양한 컨테이너를 손쉽게 추가하거나 수정 가능
- 네트워크 설정, 볼륨 공유 등 복잡한 설정을 간단히 구현
- 효율적인 자원 관리
- 필요에 따라 컨테이너를 시작 및 중지하여 자원 절약 가능
- 쉬운 배포
- 동일한 구성 파일을 사용해 로컬과 프로덕션 환경 모두에서 쉽게 배포 가능
- 동일한 구성 파일을 사용해 로컬과 프로덕션 환경 모두에서 쉽게 배포 가능
Docker Compose 명령어
기본 명령어
- [docker compose up]
- docker-compose.yml 파일에 정의된 모든 서비스 시작
- build, create, start 총 3개의 명령어를 한번에 실행하는 명령어
- 옵션
- -d : 백그라운드 모드로 실행
- --build : 컨테이너 시작 전에 이미지를 강제로 다시 빌드
- [docker compose down]
- docker-compose.yml로 실행된 모든 서비스를 중지하고, 네트워크 및 볼륨 정리
- 옵션
- --volumes : 서비스와 함께 생성된 모든 볼륨 제거
- --volumes : 서비스와 함께 생성된 모든 볼륨 제거
빌드 관련 명령어
- [docker compose build]
- docker-compose.yml 파일에 정의된 이미지 빌드
- 옵션
- --no-cache : 캐시를 사용하지 않고 빌드
- --parallel : 여러 이미지를 병렬로 빌드
서비스 관리
- [docker compose create]
- 빌드된 이미지를 기반으로 새로운 컨테이너 생성
- [docker compose start]
- 중지된 컨테이너 시작
- [docker compose stop]
- 실행 중인 컨테이너 중지
- [docker compose restart]
- 실행 중인 컨테이너를 중지한 후 다시 시작
- 실행 중인 컨테이너를 중지한 후 다시 시작
상태 확인
- [docker compose ps]
- 실행 중인 컨테이너 상태 확인
- 옵션
- --services : 실행 중인 서비스 이름만 출력
- [docker compose logs]
- 모든 서비스의 로그 출력
- 옵션
- -f : 실시간 로그 출력 (follow mode)
- --tail=N : 마지막 N개의 로그만 출력
기타 명령어
- [docker compose exec]
- 실행 중인 컨테이너 내부에서 명령어 실행
- 옵션
- -i : 표준 입력을 활성화하여 컨테이너와 상호작용 가능
- -t : 가상 터미널을 활성화
- [docker compose config]
- docker-compose.yml 파일의 유효성을 검사하고, 결과 출력
- docker-compose.yml 파일의 유효성을 검사하고, 결과 출력
Docker-Compose / Docker Compose
특징 | docker-compose | docker compose |
동작 방식 | 독립 실행형 도구 | Docker CLI의 플러그인 |
설치 필요 여부 | 별도 설치 필요 | Docker와 함께 제공 |
명령어 형식 | docker-compose up | docker compose up |
성능 | Python 기반, 속도 느림 | Go 기반, 성능 최적화 |
배포 주기 | 별도 배포 | Docker CLI와 동기화 |
'Docker' 카테고리의 다른 글
[Docker] 6. docker-compose.yml? (1) | 2024.11.15 |
---|---|
[Docker] 4. Volume? Mount? (0) | 2024.11.14 |
[Docker] 3. Docker Hub? (0) | 2024.11.13 |
[Docker] 2. Docker 기본 명령어 (1) | 2024.11.13 |
[Docker] 1. Docker? (0) | 2024.11.13 |