我希望能够获取仅有特权的Docker容器列表。docker ps
默认情况下会列出所有正在运行的容器。我查阅了文档,但没有找到相关信息。
是否可以使用API实现,或者还有其他方法可以实现?
我希望能够获取仅有特权的Docker容器列表。docker ps
默认情况下会列出所有正在运行的容器。我查阅了文档,但没有找到相关信息。
是否可以使用API实现,或者还有其他方法可以实现?
可能有更好的方法,但是使用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