[docker] docker와 docker-compose의 차이점은 무엇입니까

docker그리고 docker-compose, 두 도구의 차이점은 무엇입니까 같은 dockerFile과 상호 작용하는 것 같다?



답변

docker고정 표시기 엔진의 개별 컨테이너를 관리 할 때 CLI 사용됩니다. docker daemon api에 액세스하는 것은 클라이언트 명령 행입니다.

docker-composeCLI는 멀티 컨테이너 응용 프로그램을 관리 할 수 있습니다. 또한 docker runcli에 입력 한 많은 옵션을 docker-compose.yml파일로 이동하여 더 쉽게 재사용 할 수 있습니다. 그것은 사용하는 동일한 고정 표시기 API를 상단에 프런트 엔드 “스크립트”로 작동합니다 docker당신이 모든 것을 할 수 있도록 docker-compose함께 수행 docker명령과 쉘 스크립트를 많이. 자세한 내용 은 docker-compose에서이 설명서 를 참조하십시오.


스웜 모드 업데이트

이 답변이 게시 된 후 docker는 docker-compose.yml 파일의 두 번째 사용을 추가했습니다. 시작 버전 3 YML 형식 과 고정 표시기 1.13, 당신은 고정 표시기의 떼 모드에서 스택을 정의하는 것도 고정 표시기-작성으로 YML을 사용할 수 있습니다. 후자를 수행하려면 docker stack deploy -c docker-compose.yml $stack_name대신 명령 docker-compose up을 사용하여 스택을 관리해야 합니다. 매핑은 두 가지 용도 중 하나에 대한 것입니다.dockerdocker-compose

  • Compose Project-> Swarm Stack : 특정 목적을위한 서비스 그룹
  • Compose Service-> Swarm Service : 하나의 이미지와 구성이 가능합니다.
  • 컨테이너 작성-> 무리 작업 : 서비스의 단일 컨테이너

swarm 모드에 대한 자세한 내용은 docker ‘s swarm mode documentation를 참조하십시오 .


답변

docker 단일 컨테이너 관리

docker-compose 여러 컨테이너 응용 프로그램을 관리합니다

의 사용 고정 표시기-작성은 3 단계가 필요합니다 :

  1. Dockerfile을 사용 하여 앱 환경 정의
  2. docker-compose.yml 에서 앱 서비스 정의
  3. docker-compose up앱을 시작하고 실행 하기 위해 실행

도커 작성

아래는 docker docs 에서 가져온 docker-compose.yml 예제입니다 .

services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}


답변