Docker:是否有一个仅列出特权容器的“docker ps”命令?

4

我希望能够获取仅有特权的Docker容器列表。docker ps 默认情况下会列出所有正在运行的容器。我查阅了文档,但没有找到相关信息。

是否可以使用API实现,或者还有其他方法可以实现?

1个回答

2

可能有更好的方法,但是使用shell,您可以这样做:

 docker inspect --format='{{.ID}} {{.HostConfig.Privileged}}' $(docker ps | awk '{if(NR>1) print $1 }') | grep true

docker inspect 将检查单个容器。我们要检查的属性是 .HostConfig.Privileged。

--format 将返回 id 和 true 或 false,以指示容器是否具有特权。 $(docker ps | awk '{if(NR>1)

我们在最后使用命令替换来返回 docker ps 中容器的 ids。

编辑以使命令更加高效

根据评论的建议进行改进,去除了管道符号并使命令更加高效。为了仅显示具有特权的容器,结果被传递到 grep 中寻找 true。

docker inspect --format='{{.ID}} {{.HostConfig.Privileged}}' $(docker ps --format='{{.ID}}') | grep true 

如果我们移除最后一个管道符,将会列出所有正在运行的容器以及一个表示特权状态的真或假标志。
docker inspect --format='{{.ID}} {{.HostConfig.Privileged}}' $(docker ps --format='{{.ID}}')

很棒,我认为这个更好:docker inspect --format='{{.ID}} {{.HostConfig.Privileged}}' $(docker ps --format '{{.ID}}') 如果你也这么认为,请更新回答,我会接受它。如果不是,请告诉我原因,我仍然会接受 :) - Sam Thomas
1
@samthomas 谢谢,我喜欢你的改进,它使命令更有效和更清洁。感谢您的反馈。 - Peter Halligan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接