docker stack services

docker stack services

docker stack services는 특정 스택(stack) 안에서 실행 중인 서비스 목록을 보여주는 명령이에요. 스택에 어떤 서비스가 떠 있는지 확인하고 싶을 때 사용해요.

출처: 문서

본문

docker stack services는 지정한 스택의 일부로 실행 중인 서비스 목록을 보여줘요.

docker stack services [OPTIONS] STACK

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

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

옵션 기본값 설명
-f, --filter 조건에 따라 출력을 필터링해요.
--format Go 템플릿으로 출력 형식을 정해요. table(기본), table TEMPLATE, json, TEMPLATE을 지원해요.
-q, --quiet ID만 표시해요.

예시

myapp 스택의 모든 서비스를 보여주는 예시예요.

$ docker stack services myapp

ID            NAME            REPLICAS  IMAGE
7be5ei6sqeye  myapp_web       1/1       nginx@sha256:23f809e7fd5952e7d5be065b4d3643fbbceccd349d537b62a123ef2201bc886f
dn7m7nhhfb9y  myapp_db        1/1       mysql@sha256:a9a5b559f8821fe73d58c3606c812d1c044868d42c63817fa5125fd9d8b7b539

필터링 (--filter)

-f/--filter 형식은 key=value 쌍이에요. 필터가 여러 개면 플래그를 여러 번 넘기고, 여러 필터는 OR로 결합돼요.

$ docker stack services --filter name=myapp_web --filter name=myapp_db myapp

지원하는 필터는 다음과 같아요.

  • id / ID (예: --filter id=7be5ei6sqeye)
  • label (예: --filter label=key=value)
  • mode (예: --filter mode=replicated) — Swarm에서는 미지원
  • name (예: --filter name=myapp_web)
  • node (예: --filter node=mynode) — Swarm에서는 미지원
  • service (예: --filter service=web) — Swarm에서는 미지원

출력 형식 (--format)

--format은 Go 템플릿으로 서비스 출력을 꾸며줘요. 사용할 수 있는 플레이스홀더는 다음과 같아요.

플레이스홀더 설명
.ID 서비스 ID
.Name 서비스 이름
.Mode 서비스 모드 (replicated, global)
.Replicas 서비스 레플리카 수
.Image 서비스 이미지

헤더 없이 ID, Mode, Replicas를 콜론으로 구분해 출력하는 예시예요.

$ docker stack services --format "{{.ID}}: {{.Mode}} {{.Replicas}}"

0zmvwuiu3vue: replicated 10/10
fm6uf97exkul: global 5/5

더 알아보기