是否可以在docker swarm服务中获取所有正在运行的容器ID?

thi*_*sms 2 docker docker-swarm docker-swarm-mode

我是docker swarm模式的新手,如果我想了解我的swarm服务的更多详细信息,可以从命令行运行docker service ps“服务名”,也可以从docker rest运行“ / v2 / services / my-ngx”

[msreddy@swarmnode1 ~]$ docker service ps my-ngx ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS voj7fllhnmqb my-ngx.1 nginx:latest swarmnode1 Running Running 26 minutes ago

但是它没有给我容器ID。我想从群服务中跟踪容器吗?

prr*_*nay 5

返回的ID docker service ps my-ngx<task_id> 要获取容器ID,可以使用docker inspect -f "{{.Status.ContainerStatus.ContainerID}}" <task_id>

  • 似乎与较新的API相比,ContainerID不可用 (2认同)

est*_*ani 5

prranay 的解决方案完美地工作。将它与提出的问题放在一起(bash):

for f in $(docker service ps -q my-ngx -f desired-state=running);do docker inspect --format '{{.Status.ContainerStatus.ContainerID}}' $f; done
Run Code Online (Sandbox Code Playgroud)

这列出了上述服务的所有容器 my-ngx