Shell 如何删除Jenkins作业中的docker图像

Shell 如何删除Jenkins作业中的docker图像,shell,docker,Shell,Docker,我想从詹金斯内部删除一些Docker操作的剩余部分 但不知何故,下面这句话不管用 问题似乎出在括号里 有什么建议吗 if [ docker images -f dangling=true -q|wc -l > 0 ]; then docker rmi --force $(docker images -f dangling=true -q);fi 我将存储docker images命令的输出,然后使用它: images=$(docker images -f dangling=true -q

我想从詹金斯内部删除一些Docker操作的剩余部分

但不知何故,下面这句话不管用

问题似乎出在括号里

有什么建议吗

if [ docker images -f dangling=true -q|wc -l > 0 ]; then docker rmi --force $(docker images -f dangling=true -q);fi

我将存储docker images命令的输出,然后使用它:

images=$(docker images -f dangling=true -q); if [[ ${images} ]]; then docker rmi --force ${images}; fi
删除所有悬空图像。Docker image prune-a也删除未使用的图像。这解释了什么是悬空和未使用的图像。
简而言之:悬空图像-->无标签,未使用的图像-->未连接容器。

较新版本的Docker现在有
系统修剪
命令

要删除悬空图像,请执行以下操作:

$ docker system prune
要删除悬空图像和未使用的图像,请执行以下操作:

$ docker system prune --all
要修剪卷,请执行以下操作:

$ docker system prune --volumes
修剪宇宙:

$ docker system prune --force --all --volumes
删除悬挂的图像

使用
-xargs
将需要
--如果为空则不运行
(-r),以绕过执行
无参数的docker rmi

docker images --quiet --filter=dangling=true | xargs --no-run-if-empty docker rmi
使用normarbash命令检查和删除

 if docker images -f "dangling=true" | grep ago --quiet; then
    docker rmi -f $(docker images -f "dangling=true" -q)
 fi

谢谢你的回答,赫姆。不幸的是“docker映像”在我的机器上不存在。。。可能是更干净、更短的解决方案…你是说docker image prune不存在?这是一个相对较新的命令,但docker image ls和其他都是旧的。是的,它不存在。。。。docker文档还显示docker图像下方的*符号。但我不知道那颗星是什么意思。
docker system prune
将删除所有未使用的数据(所有停止的容器、所有未使用的网络、所有悬空的图像…),如果只想删除悬空的图像,
docker image prune
要好得多。
docker system prune
在没有备份的情况下不会重新编译。对特定情况使用特定命令。这会删除当前正在运行的其他作业的映像吗?
docker images--quiet--filter=dangling=true | xargs--如果docker rmi为空,则不运行