Docker Compose개요
Compose는 다중 컨테이너 Docker 응용 프로그램을 정의하고 실행하기위한 도구입니다. Compose를 사용하면 YAML 파일을 사용하여 응용 프로그램의 서비스를 구성 할 수 있습니다. 그런 다음 단일 명령으로 구성에서 모든 서비스를 작성하고 시작하십시오. Compose의 모든 기능에 대한 자세한 내용은 기능 목록을 참조하십시오 .
작성은 모든 환경 (생산, 준비, 개발, 테스트, CI 워크 플로우)에서 작동합니다. 일반적인 사용 사례 에서 각 사례에 대해 자세히 알아볼 수 있습니다 .
작성 사용은 기본적으로 3 단계 프로세스입니다.
Dockerfile
어디에서나 재생산 할 수 있도록 앱의 환경을 정의하십시오 .docker-compose.yml
격리 된 환경에서 함께 실행할 수 있도록 앱을 구성하는 서비스를 정의 합니다.실행
docker-compose up
및 작성은 전체 앱을 시작하고 실행합니다.
A docker-compose.yml
모양은 다음과 같습니다.
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
작성 파일에 대한 자세한 정보는 작성 파일 참조를 참조하십시오 .
Compose에는 응용 프로그램의 전체 라이프 사이클을 관리하는 명령이 있습니다.
- 서비스 시작, 중지 및 다시 작성
- 실행중인 서비스의 상태보기
- 실행중인 서비스의 로그 출력 스트리밍
- 서비스에서 일회용 명령 실행
문서 작성
풍모
Compose의 효과적인 기능은 다음과 같습니다.
단일 호스트상의 여러 격리 된 환경
Compose는 프로젝트 이름을 사용하여 서로 환경을 격리합니다. 여러 다른 상황에서이 프로젝트 이름을 사용할 수 있습니다.
- dev 호스트에서 프로젝트의 각 지형지 물에 대해 안정적인 복사본을 실행하려는 경우와 같이 단일 환경의 여러 복사본을 만들 수 있습니다
- CI 서버에서 빌드가 서로 간섭하지 않도록하려면 프로젝트 이름을 고유 한 빌드 번호로 설정할 수 있습니다
- 공유 호스트 또는 dev 호스트에서 동일한 서비스 이름을 사용할 수있는 서로 다른 프로젝트가 서로 간섭하지 않도록
기본 프로젝트 이름은 프로젝트 디렉토리의 기본 이름입니다. -p
명령 행 옵션 또는COMPOSE_PROJECT_NAME
환경 변수 를 사용하여 사용자 정의 프로젝트 이름을 설정할 수 있습니다 .
컨테이너 작성시 볼륨 데이터 보존
Compose는 서비스에서 사용하는 모든 볼륨을 보존합니다. docker-compose up
실행될 때 이전 실행에서 컨테이너를 찾으면 볼륨을 이전 컨테이너에서 새 컨테이너로 복사합니다. 이 프로세스는 볼륨에서 작성한 모든 데이터가 손실되지 않도록합니다.
당신이 사용하는 경우 docker-compose
Windows 시스템에서 참조 환경 변수 및 사용자의 특정 요구에 필요한 환경 변수를 조정합니다.
변경된 컨테이너 만 다시 작성하십시오.
컨테이너 작성에 사용 된 구성을 작성하십시오. 변경되지 않은 서비스를 다시 시작하면 Compose는 기존 컨테이너를 다시 사용합니다. 컨테이너를 다시 사용한다는 것은 환경을 매우 빠르게 변경할 수 있음을 의미합니다.
변수와 환경간에 컴포지션 이동
Compose는 Compose 파일의 변수를 지원합니다. 이 변수를 사용하여 서로 다른 환경 또는 다른 사용자에 맞게 구성을 사용자 정의 할 수 있습니다. 자세한 내용은 변수 대체 를 참조하십시오.
extends
필드를 사용하거나 여러 Compose 파일을 작성 하여 작성 파일을 확장 할 수 있습니다 . 자세한 내용 은 extend 를 참조하십시오.
일반적인 사용 사례
작성은 여러 가지 다른 방법으로 사용될 수 있습니다. 몇 가지 일반적인 사용 사례가 아래에 요약되어 있습니다.
개발 환경
소프트웨어를 개발할 때는 격리 된 환경에서 응용 프로그램을 실행하고 응용 프로그램과 상호 작용하는 기능이 중요합니다. 작성 명령 행 도구를 사용하여 환경을 작성하고 환경과 상호 작용할 수 있습니다.
작성 파일은 문서 및 응용 프로그램의 서비스 종속성의 모든 (데이터베이스, 큐, 캐시, 웹 서비스 API 등)을 구성 할 수있는 방법을 제공합니다. 작성 명령 행 도구를 사용하여 단일 명령 ( docker-compose up
)으로 각 종속성에 대해 하나 이상의 컨테이너를 작성하고 시작할 수 있습니다 .
이러한 기능을 함께 사용하면 개발자가 프로젝트를 시작할 수있는 편리한 방법을 제공합니다. 작성은 여러 페이지의 "개발자 시작 안내서"를 단일 기계 판독 가능 파일 작성 및 몇 가지 명령으로 줄일 수 있습니다.
자동화 된 테스트 환경
Continuous Deployment 또는 Continuous Integration 프로세스의 중요한 부분은 자동화 된 테스트 스위트입니다. 자동화 된 엔드 투 엔드 테스트에는 테스트를 실행하는 환경이 필요합니다. Compose는 테스트 스위트에 대해 격리 된 테스트 환경을 만들고 파괴하는 편리한 방법을 제공합니다. Compose 파일 에 전체 환경을 정의하면 몇 가지 명령으로 이러한 환경을 만들고 파괴 할 수 있습니다.
$ docker-compose up -d
$ ./run_tests
$ docker-compose down
단일 호스트 배포
Compose는 전통적으로 개발 및 테스트 워크 플로에 주력해 왔지만, 출시 할 때마다 더 많은 생산 지향 기능을 개발하고 있습니다. Compose를 사용하여 원격 Docker Engine에 배포 할 수 있습니다. Docker Engine은 Docker Machine 또는 전체 Docker Swarm 클러스터로 프로비저닝 된 단일 인스턴스 일 수 있습니다 .
제작 지향 기능 사용에 대한 자세한 내용 은이 설명서의 제작 환경 에서 작성을 참조하십시오 .
릴리즈 노트
Docker Compose의 과거 및 현재 릴리스에 대한 자세한 변경 사항을 보려면 CHANGELOG를 참조하십시오 .
도움을 받다
Docker Compose는 적극적으로 개발 중입니다. 도움이 필요하거나, 공헌하고 싶거나, 같은 생각을 가진 사람들과 프로젝트에 관해 이야기하기를 원할 경우, 의사 소통을위한 많은 열린 채널이 있습니다.
실시간으로 사람들과 프로젝트에 대해 이야기하기 :
#docker-compose
freenode IRC 채널에 가입하십시오 .코드 또는 문서 변경 사항을 제출하려면 Github에서 요청을 제출하십시오 .