docker stack ps

docker stack ps

docker stack ps는 특정 스택(stack) 안에서 실행 중인 태스크(task) 목록을 보여주는 명령이에요. 스택의 태스크 상태를 확인하고 싶을 때 사용해요.

출처: 문서

본문

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

docker stack ps [OPTIONS] STACK

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

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

옵션 기본값 설명
-f, --filter 조건에 따라 출력을 필터링해요.
--format Go 템플릿으로 출력 형식을 정해요. table(기본), table TEMPLATE, json, TEMPLATE을 지원해요.
--no-resolve ID를 이름으로 변환하지 않아요.
--no-trunc 출력을 자르지 않아요.
-q, --quiet 태스크 ID만 표시해요.

예시

voting 스택의 모든 태스크를 보여주는 예시예요.

$ docker stack ps voting

ID                  NAME                  IMAGE                                          NODE   DESIRED STATE  CURRENT STATE          ERROR  PORTS
xim5bcqtgk1b        voting_worker.1       dockersamples/examplevotingapp_worker:latest   node2  Running        Running 2 minutes ago
q7yik0ks1in6        voting_result.1       dockersamples/examplevotingapp_result:before   node1  Running        Running 2 minutes ago
rx5yo0866nfx        voting_vote.1         dockersamples/examplevotingapp_vote:before     node3  Running        Running 2 minutes ago
tz6j82jnwrx7        voting_db.1           postgres:9.4                                   node1  Running        Running 2 minutes ago
...

필터링 (--filter)

-f/--filter 형식은 key=value 쌍이에요. 여러 필터는 OR로 결합돼요. 지원하는 필터는 id, name, node, desired-state예요.

  • id: 태스크 ID 전체 또는 앞부분으로 일치 (예: -f "id=t")
  • name: 태스크 이름으로 일치 (예: -f "name=voting_redis")
  • node: 노드 이름 또는 ID로 일치 (예: -f "node=node1")
  • desired-state: running, shutdown, ready, accepted 값 사용 (예: -f "desired-state=running")

출력 형식 (--format)

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

플레이스홀더 설명
.ID 태스크 ID
.Name 태스크 이름
.Image 태스크 이미지
.Node 노드 ID
.DesiredState 태스크의 원하는 상태 (running, shutdown, accepted)
.CurrentState 태스크의 현재 상태
.Error 오류
.Ports 태스크의 게시된 포트

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

$ docker stack ps --format "{{.Name}}: {{.Image}}" voting

voting_worker.1: dockersamples/examplevotingapp_worker:latest
voting_result.1: dockersamples/examplevotingapp_result:before
...

ID를 이름으로 변환하지 않기 (--no-resolve)

--no-resolve 옵션은 태스크 이름에 ID를 그대로 보여줘요.

출력 자르지 않기 (--no-trunc)

--no-trunc 옵션은 이미지 다이제스트(digest), 온전한 태스크 ID, 오류 메시지까지 자르지 않고 보여줘요.

태스크 ID만 표시 (-q, --quiet)

-q/--quiet 옵션은 스택 안의 태스크 ID만 출력해요.

$ docker stack ps -q voting
xim5bcqtgk1b
q7yik0ks1in6
...

이 옵션은 배치 작업에 사용할 수 있어요. 예를 들어 태스크 ID를 docker inspect 같은 다른 명령의 입력으로 쓸 수 있어요.

$ docker inspect $(docker stack ps -q voting)

더 알아보기