4

我是 docker swarm 模式的新手,如果我想了解更多关于我的 swarm 服务的详细信息,我可以从命令行运行 docker service ps "service name",或者从 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。我想从我的 swarm 服务中跟踪容器,这可能吗?

4

2 回答 2

9

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

于 2017-02-26T06:42:30.510 回答
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

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

于 2018-12-05T13:13:47.940 回答