[docker] docker와 docker-compose의 차이점은 무엇입니까
docker
그리고 docker-compose
, 두 도구의 차이점은 무엇입니까 같은 dockerFile과 상호 작용하는 것 같다?
답변
docker
고정 표시기 엔진의 개별 컨테이너를 관리 할 때 CLI 사용됩니다. docker daemon api에 액세스하는 것은 클라이언트 명령 행입니다.
docker-compose
CLI는 멀티 컨테이너 응용 프로그램을 관리 할 수 있습니다. 또한 docker run
cli에 입력 한 많은 옵션을 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
을 사용하여 스택을 관리해야 합니다. 매핑은 두 가지 용도 중 하나에 대한 것입니다.docker
docker-compose
- Compose Project-> Swarm Stack : 특정 목적을위한 서비스 그룹
- Compose Service-> Swarm Service : 하나의 이미지와 구성이 가능합니다.
- 컨테이너 작성-> 무리 작업 : 서비스의 단일 컨테이너
swarm 모드에 대한 자세한 내용은 docker ‘s swarm mode documentation를 참조하십시오 .
답변
docker
단일 컨테이너 관리
docker-compose
여러 컨테이너 응용 프로그램을 관리합니다
의 사용 고정 표시기-작성은 3 단계가 필요합니다 :
- Dockerfile을 사용 하여 앱 환경 정의
- docker-compose.yml 에서 앱 서비스 정의
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: {}