Dockerfile
로 앱 환경을 정의하여 어디서나 재현할 수 있도록 한다.
compose.yaml
에 앱을 구성하는 서비스를 파일로 정의하여 격리된 환경에서 함께 실행할 수 있도록 한다.
compose.yaml 예시>>
services:
web:
build: .
ports:
- "8000:5000"
volumes:
- .:/code
- logvolume01:/var/log
depends_on:
- redis
redis:
image: redis
volumes:
logvolume01: {}
docker compose up
을 실행하면 Docker compose 명령이 전체 앱을 시작하고 실행
단일 호스트에 여러 개의 격리된 환경 보유
Compose는 프로젝트 이름
을 사용하여 환경을 서로 격리합니다.
이 프로젝트 이름은 여러 가지 컨텍스트에서 사용할 수 있습니다.
공유 호스트
또는 개발 호스트
에서 동일한 서비스 이름
을 사용할 수 있는 서로 다른 프로젝트가 서로 간섭하는 것을 방지하기 위해프로젝트 이름
[-p
명령줄 옵션](https://docs.docker.com/compose/reference/) 이나 [COMPOSE_PROJECT_NAME
환경 변수를](https://docs.docker.com/compose/environment-variables/envvars/#compose_project_name) 사용하여 사용자 정의 프로젝트 이름을 설정할 수 있습니다 .컨테이너가 생성될 때 볼륨 데이터 보존
Compose는 서비스에서 사용하는 모든 볼륨을 보존
docker compose up
실행 시, 이전 실행에서 생성된 컨테이너를 찾으면 이전 컨테이너의 볼륨을 새 컨테이너에 복사합니다.
이 프로세스를 통해 볼륨에 생성한 모든 데이터가 손실되지 않도록 할 수 있습니다.
변경된 컨테이너만 다시 생성
Compose는 컨테이너를 만드는 데 사용된 구성을 캐시합니다.
변경되지 않은 서비스를 다시 시작하면 Compose는 기존 컨테이너를 재사용합니다.
컨테이너를 재사용하면 환경을 매우 빠르게 변경할 수 있습니다.
변수를 지원하고 환경 간 컴포지션 이동을 지원 💦
Compose는 Compose 파일의 변수를 지원합니다.
이러한 변수를 사용하여 다양한 환경이나 다양한 사용자에 맞게 구성을 사용자 정의할 수 있습니다.
extends
필드를 사용하거나 여러 Compose 파일을 생성하여 Compose 파일을 확장할 수 있습니다 .
자세한 내용은 여러 Compose 파일 작업을 참조하세요 .
개발 환경
개발자가 프로젝트를 시작할 수 있는 편리한 방법을 제공합니다.
Compose는 여러 페이지로 구성된 '개발자 시작 가이드'를 머신에서 읽을 수 있는 단일 Compose 파일과 몇 가지 명령으로 줄일 수 있음
[docker compose up](https://www.notion.so/5bf2ebe4a09e43bcb918c3a54d9160c2?pvs=21)
)으로 각 종속성에 대해 하나 이상의 컨테이너를 만들고 시작 가능자동화된 테스트 환경
지속적인 배포 또는 지속적인 통합 프로세스에는 자동화된 테스트 도구가 중요하다.
자동화된 엔드 투 엔드 테스트에는 테스트를 실행할 환경이 필요하다.
Compose는 테스트 도구 모음에 대한 격리된 테스트 환경을 만들고 제거하는 편리한 방법을 제공한다.
Compose 파일에서 전체 환경을 정의하면 몇 가지 명령만으로 이러한 환경을 만들고 삭제할 수 있습니다.
docker compose up -d // 서비스 및 컨테이너를 시작
./run_tests // 테스트를 실행
docker compose down // 서비스 및 컨테이너를 중지하고 관련 리소스를 정리
docker-compose up -d
: Docker Compose를 사용하여 정의된 서비스 및 컨테이너를 시작합니다.up
: 서비스를 시작하라는 옵션입니다.d
: 백그라운드 모드에서 실행하라는 옵션입니다. 즉, 컨테이너가 화면에 출력되지 않고 백그라운드에서 실행됩니다../run_tests
: run_tests
라는 스크립트나 실행 가능한 파일을 실행합니다. 이는 특정 테스트를 실행하는 데 사용되는 것으로 추정됩니다.docker-compose down
: Docker Compose를 사용하여 실행 중인 서비스 및 컨테이너를 중지하고 관련 리소스를 정리합니다.down
: 서비스를 중지하라는 옵션입니다.단일 호스트 배포
Compose는 전통적으로 개발 및 테스트 워크플로에 중점을 두었지만, 출시될 때마다 보다 프로덕션 지향적인 기능을 개발하고 있습니다.