Wie lösche ich ein Docker-Netzwerk, das nicht existiert?

13

Ich habe eine Docker-Schwarm-Konfiguration mit 3 Knoten. Es gibt ein Netzwerk, das sich nur auf einem der Knoten befindet. docker network lsZeigt auf diesem bestimmten Knoten das Netzwerk an, docker network rm [network-id]sagt " Fehlerantwort vom Daemon: Netzwerk ... nicht gefunden ", während docker network inspect [network-id]das Netzwerk angezeigt wird, und es sieht ziemlich gut aus (Bereich: Schwarm, Treiber: Overlay). Genau wie eine, die ich testweise parallel erstellt habe, um sie mit zu vergleichen. Irgendeine Idee jemand? Wie kann ich diesen Netzwerkzombie loswerden?

JRoppert
quelle
Beeinflusst "Docker Network Prune" das Zombie-Netzwerk?
Johan
Nein, ich habe nicht das gleiche Problem. Kann reproduzieren, aber nicht absichtlich. Passiert nach einer Weile. Docker-Netzwerk ls <Netzwerk> zeigt, id name overlay swarmaber docker network rm <id> or <name> gives: "Error response from daemon: network id` nicht gefunden
Matthis Kohli

Antworten:

14

Wie kann ich diesen Netzwerkzombie loswerden?

Bitte versuche folgendes.

docker network inspect <id> or <name>

Unter Container sehen Sie alle Container, die noch mit dem Netzwerk verbunden sind

docker network disconnect -f <networkID> <endpointName> or <endpointId> try both

Entfernen Sie anschließend alle nicht verwendeten Netzwerke

docker network prune

Das Problem wurde für mich behoben;)

Matthis Kohli
quelle
2
Der in aufgeführte Container docker network inspectist nicht in docker container ls. Wenn ich jedoch die Verbindung zum Endpunktnamen trenne, scheint dies zu helfen.
Geoffrey Wiseman
2
Ich musste das Flag --force geben, da Docker ohne dieses Flag sich beschwerte, dass die aufgelisteten Container nicht existierten.
Ryan Fox
@ RyanFox Geoffrey Wieseman Ich habe meine Antwort aktualisiert. Vielen Dank für die Eingabe. Wir haben gerade erfahren, dass wir manchmal aus Gründen auch das Flag <endpointName> oder <-f> benötigen ... :)
Matthis Kohli
Nichts hat bei mir funktioniert, nur ein "/etc/init.d/docker restart" hat das Zombie-Netzwerk entfernt
daigorocub
Es hat bei mir funktioniert, aber ich musste den Endpunktnamen anstelle der Endpunkt-ID verwenden
Edouard Berthe