如何删除 Docker 群中所有节点上的镜像?

问题描述 投票:0回答:2

在本地主机上,我可以使用

docker image rm
docker rmi
删除图像。

如果我当前的主机是 Docker 群中的管理节点并且我希望在整个群中级联此操作怎么办?

当我第一次创建 Docker 服务时,镜像被拉到了 swarm 中的每个节点上。删除服务并不会删除镜像,所有节点都会保留镜像的副本。

如果有一种方法可以将图像“推送”到所有节点,那么应该有一种同样自然的方法来删除它们,而不必通过 SSH 连接到每台机器,这感觉很自然:'( 另外,这是一个真正的问题.迟早节点注定没有更多的磁盘空间!

docker docker-swarm docker-image
2个回答
1
投票

据我所知,目前还没有这样的选项。每个节点负责自己的清理工作。有一个命令

docker system prune -f
可用于清除容器数据。

但标记的图像只能使用

docker rmi
删除。请参阅以下问题

https://github.com/moby/moby/issues/24079


0
投票

这是可行的。在管理器节点上的

/etc/hosts
中创建主机条目,如下所示

1.1.1.1    node01
1.1.1.2    node02
1.1.1.3    node03

然后运行

for i in {01..03}; do ssh node$i "docker rmi $(docker images -q)"; done

警告:此命令将删除所有节点上的所有图像,如

/etc/hosts
中列出。

© www.soinside.com 2019 - 2024. All rights reserved.