2017-03-29 3 views
25

Docker Compose를 사용하여 여러 호스트의 여러 컨테이너에 응용 프로그램을 배포하는 방법에 대해 배우고 있습니다. 그리고 스택 파일과 Compose 파일의 두 가지 구성 파일을 보았습니다.스택 파일과 작성 파일의 차이점은 무엇입니까?

Cloud stack file YAML reference에서 의 스택 파일은 하나 이상의 서비스를 정의하는 YAML 형식의 파일로 docker-compose.yml 파일과 유사하지만 확장자는 약간 있습니다.

그리고 this post에서, 그것은 스택이 고정 표시기-작성 컨테이너을 정의하면서 그들이 서비스를 정의 제외하고 고정 표시기-구성이 매우 유사하다고 주장한다.

그들은 매우 비슷해 보입니다. 그래서 언제 스택 파일을 사용할 것인지, 그리고 언제 작성 파일을 사용할 것인지 궁금합니다.

+0

좋은 질문 여기에서 찾을 수 있습니다. 도커가 이미 작성되었을 때 왜 도커 스택이 필요한지 묻고 싶습니다. 두 번째 링크에서는 도커 스택이 도커 엔진에 대한 서비스로 상태가 올바르지 않습니다. 그렇다면 왜 우리는 독점적 인 작성자를 업그레이드하여 서비스로 만들 수 없습니까? – lonelyloner

+0

@lonelyloner 훌륭한 질문입니다. 내 생각에 그것은 도커 작성은 자체 도구이며 도커에 통합되어 있지 않기 때문입니다. Linux에서는 별도로 설치해야했습니다. Windows에서는 Docker와 함께 사용한다고 생각합니다. 바라건대, 미래에 도커가 그들을 병합 할 것이고, 단지 스택 파일이있을 것입니다. –

답변

25

개념적으로 두 파일 모두 도커 엔진에서 컨테이너를 배포하고 구성하는 것과 동일한 목적을 수행합니다.

Docker-compose 도구가 먼저 만들어졌으며 그 목적은 단일 도커 엔진에서 "다중 컨테이너 Docker 응용 프로그램 정의 및 실행"입니다. 그래서 당신의 용기, 네트워크, 볼륨을 업데이트하고/

당신은 만들

docker-compose up 

사용 (docker compose overview 참조). 도커 스택가 하나의 고정 표시기 엔진에 필요하지 않은 도커 떼 (부두 노동자의 오케스트레이션 및 일정 도구) 및, 따라서, 추가 구성 매개 변수 (즉 복제, 배포, 역할)가 사용된다

.

스택 파일은

docker stack 

명령으로 해석됩니다. 이 명령은 부두 관리자 전용으로 만 호출 할 수 있습니다.

docker-compose.yml을 docker-cloud.yml로 변환하여 되돌릴 수 있습니다. 그러나 귀하의 질문에 명시된 바와 같이, 당신은 차이점에주의를 기울여야합니다. 또한, 도커 작성을 위해 다른 버전이 있음을 명심해야합니다. 현재 최신 버전은 버전 3 (https://docs.docker.com/compose/compose-file/)

편집입니다 : 차이를 이해하는 데 도움이 될 흥미로운 블로그, https://blog.nimbleci.com/2016/09/14/docker-stacks-and-why-we-need-them/

+0

예, 이것은 Compose 파일에 [deploy.] (https://docs.docker.com/compose/compose-file/#deploy)와 같이 swarm 관련 속성에 대한 언급이 있기 때문에 혼란 스럽습니다. 이는 무시됩니다. 'docker compose'를 사용하고''docker stack deploy''에서만 유효합니다. 나는 모든 의도와 목적을 위해 3 + 버전의 작곡에 대해, 그들은 같다고 생각하니? – dayuloli

+0

버전 3은 2와 다릅니다. 특히 볼륨이 선언되는 방식. 다른 변경 사항이 있습니다.버전 3 작성은 변경하지 않고 swarm에서 작업 할 수 있어야하지만, 실제로 컨테이너에 볼륨이 있고 재배포시 데이터 손실을 감당할 수없는 경우 swarm 구성을 추가해야합니다. –

+1

그래서 스택 대신 작성 기능을 사용할 수 있습니까? – sudo