在本地主机上,我可以使用
docker image rm
或 docker rmi
删除图像。
如果我当前的主机是 Docker 群中的管理节点并且我希望在整个群中级联此操作怎么办?
当我第一次创建 Docker 服务时,镜像被拉到了 swarm 中的每个节点上。删除服务并不会删除镜像,所有节点都会保留镜像的副本。
如果有一种方法可以将图像“推送”到所有节点,那么应该有一种同样自然的方法来删除它们,而不必通过 SSH 连接到每台机器,这感觉很自然:'( 另外,这是一个真正的问题.迟早节点注定没有更多的磁盘空间!
据我所知,目前还没有这样的选项。每个节点负责自己的清理工作。有一个命令
docker system prune -f
可用于清除容器数据。
但标记的图像只能使用
docker rmi
删除。请参阅以下问题
这是可行的。在管理器节点上的
/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
中列出。