我可以通过名称找到一个 docker 容器:docker ps --filter='name=mvn_repo'
。有没有办法(不诉诸 bash/awk/grep 等)来否定这个过滤器并列出除了给定名称的容器之外的所有容器?
最佳答案
你可以使用docker inspect
来做这个,我用--name=test111创建了一个容器,它显示为/test111,所以如果我这样做了
docker inspect -f '{{if ne "test111".Name }}{{.Name}} {{ end }}' $(docker ps -q)
/test111
/sezs
/jolly_galileo
/分心_梅斯托夫
/craky_nobel
/goofy_turing
/modest_brown
/serene_wright
/fervent_lalande
但是如果我用/做一个过滤器,那么它就变成了
docker inspect -f '{{if ne "/test111".Name }}{{.Name}} {{ end }}' $(docker ps -q)
/sezs
/jolly_galileo
/分心_梅斯托夫
/craky_nobel
/goofy_turing
/modest_brown
/serene_wright
/fervent_lalande
我不明白。
感谢 Adrian Mouat 在 docker inspect 上的引用帖子
http://container-solutions.com/docker-inspect-template-magic/
而且,正如他所说的
“(不幸的是,Docker 为每个容器打印一个换行符,无论它是否匹配 if )。” 如果我放一个空行,格式就会丢失。
关于docker - 如何搜索与 "docker ps --filter"的结果不匹配的容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31959553/