![如何删除不存在的docker网络?](https://linux22.com/image/733431/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E4%B8%8D%E5%AD%98%E5%9C%A8%E7%9A%84docker%E7%BD%91%E7%BB%9C%EF%BC%9F.png)
我有一个包含 3 个节点的 docker swarm 配置。只有一个节点上有网络。在该特定节点上,docker network ls
显示网络,docker network rm [network-id]
显示“守护进程的错误响应:网络...未找到“同时docker network inspect [network-id]
显示网络,它看起来非常好(范围:群,驱动程序:覆盖)。与我并行创建的测试网络完全一样,以便与之进行比较。有人有什么想法吗?我怎样才能摆脱那个网络僵尸?
答案1
我怎样才能摆脱那个网络僵尸?
请尝试以下操作。
docker network inspect <id> or <name>
在容器下,你可以看到所有仍连接到网络的容器
docker network disconnect -f <networkID> <endpointName> or <endpointId> try both
接下来删除所有未使用的网络
docker network prune
帮我解决了这个问题;)
答案2
我在尝试跨 docker compose 实例连接容器时,在我的开发环境中遇到了类似的问题(与 swarm 无关)。我尝试了多次停止/启动 compose、终止容器、删除镜像、修剪网络和重新启动 docker,但都以各种顺序进行,但都不起作用。
最后,在其他 Compose 实例启动时,我在有问题的实例上运行了以下命令,做过工作:
docker system prune
此项删除(根据警告):
- 所有停止的容器
- 所有未被至少一个容器使用的网络
- 所有悬垂图像
- 所有悬垂构建缓存