Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

https://docs.docker.com/compose/overview/


Info

Compose는 다중 컨테이너 Docker 응용 프로그램을 정의하고 실행하기위한 도구입니다. Compose를 사용하면 YAML 파일을 사용하여 응용 프로그램의 서비스를 구성 할 수 있습니다. 그런 다음 단일 명령으로 구성에서 모든 서비스를 작성하고 시작하십시오. Compose의 모든 기능에 대한 자세한 내용은 기능 목록을 참조하십시오 .

작성은 모든 환경 (생산, 준비, 개발, 테스트, CI 워크 플로우)에서 작동합니다. 일반적인 사용 사례 에서 각 사례에 대해 자세히 알아볼 수 있습니다 .

작성 사용은 기본적으로 3 단계 프로세스입니다.

  1. Dockerfile어디에서나 재생산 할 수 있도록 앱의 환경을 정의하십시오 .

  2. docker-compose.yml 격리 된 환경에서 함께 실행할 수 있도록 앱을 구성하는 서비스를 정의 합니다.

  3. 실행 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-composeWindows 시스템에서 참조 환경 변수 및 사용자의 특정 요구에 필요한 환경 변수를 조정합니다.

변경된 컨테이너 만 다시 작성하십시오.

컨테이너 작성에 사용 된 구성을 작성하십시오. 변경되지 않은 서비스를 다시 시작하면 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는 적극적으로 개발 중입니다. 도움이 필요하거나, 공헌하고 싶거나, 같은 생각을 가진 사람들과 프로젝트에 관해 이야기하기를 원할 경우, 의사 소통을위한 많은 열린 채널이 있습니다.

  • 버그를 신고하거나 기능 요청을 신고하려면 Github  이슈 트래커를 사용하십시오 .

  • 실시간으로 사람들과 프로젝트에 대해 이야기하기 : #docker-composefreenode IRC 채널에 가입하십시오 .

  • 코드 또는 문서 변경 사항을 제출하려면 Github에서 요청을 제출하십시오 .


Docker Compose버전 및 업그레이드 정보

...