如何删除不存在的docker网络?

JRo*_*ert 19 networking zombie docker docker-swarm

我有一个带有 3 个节点的 docker swarm 配置。有一个网络仅位于其中一个节点上。在该特定节点上,docker network ls显示网络,显示docker network rm [network-id]来自守护进程的错误响应:网络...未找到”,同时docker network inspect [network-id]显示网络,它看起来不错(范围:swarm,驱动程序:覆盖)。完全像我并行创建的测试方式来比较它。有人知道吗?我怎样才能摆脱那个网络僵尸?

Mat*_*hli 22

我怎样才能摆脱那个网络僵尸?

请尝试以下操作。

docker network inspect <id> or <name>
Run Code Online (Sandbox Code Playgroud)

在 Containers 下,您会看到所有仍连接到网络的容器

docker network disconnect -f <networkID> <endpointName> or <endpointId> try both
Run Code Online (Sandbox Code Playgroud)

接下来删除所有未使用的网络

docker network prune
Run Code Online (Sandbox Code Playgroud)

为我解决了这个问题;)

  • `docker network inspect` 中列出的容器不在 `docker container ls` 中。但是,如果我与端点名称断开连接,这似乎有帮助。 (2认同)
  • 我不得不给出 --force 标志,因为没有它,docker 会抱怨列出的容器不存在。 (2认同)
  • 感谢您的帮助,但尽管在执行 `docker network inspect` 后,容器部分实际上列出了一些容器,命令 `docker network disconnect`(即使带有 `-f` 标志和端点名称或 ID)导致错误(端点不存在)。只有`sudo service docker restart` 对我有用。 (2认同)