docker stack deploy

docker stack deploy

docker stack deploy는 Compose 파일을 기반으로 스택(stack)을 새로 배포하거나 기존 스택을 갱신하는 명령이에요. 스웜에 여러 서비스를 한 번에 배포하고 싶을 때 사용해요.

출처: 문서

본문

docker stack deploy는 스웜에서 Compose 파일로 스택을 만들고 갱신하는 명령이에요.

docker stack deploy [OPTIONS] STACK

별칭으로 docker stack up을 쓸 수 있어요.

참고: 클러스터 관리 명령이라 스웜 매니저 노드에서 실행해야 해요.

지원하는 옵션은 다음과 같아요.

옵션 기본값 설명
-c, --compose-file API 1.25+ Compose 파일 경로예요. -를 쓰면 표준 입력에서 읽어요.
-d, --detach true 스택 서비스가 수렴될 때까지 기다리지 않고 즉시 종료해요.
--prune API 1.27+ 더 이상 참조되지 않는 서비스를 정리해요.
-q, --quiet 진행 출력을 숨겨요.
--resolve-image always API 1.30+ 레지스트리에서 이미지 다이제스트와 지원 플랫폼을 조회할지 정해요 (always, changed, never).
--with-registry-auth 레지스트리 인증 정보를 Swarm 에이전트에 전달해요.

Compose 파일 사용 (--compose-file)

deploy 명령은 Compose 파일 버전 3.0 이상을 지원해요.

$ docker stack deploy --compose-file docker-compose.yml vossibility

Ignoring unsupported options: links

Creating network vossibility_vossibility
Creating network vossibility_default
Creating service vossibility_nsqd
Creating service vossibility_logstash
Creating service vossibility_elasticsearch
Creating service vossibility_kibana
Creating service vossibility_ghollector
Creating service vossibility_lookupd

설정이 여러 Compose 파일로 나뉘어 있다면(기본 설정 + 환경별 오버라이드) --compose-file 플래그를 여러 번 줄 수 있어요.

$ docker stack deploy --compose-file docker-compose.yml -c docker-compose.prod.yml vossibility

배포 후에는 docker service ls로 서비스가 제대로 만들어졌는지 확인할 수 있어요.

더 알아보기