Docker: So findest du IP-Adressen und löst das Problem von „Active Endpoints“

Docker: So findest du IP-Adressen und löst das Problem von „Active Endpoints“
Photo by Rubaitul Azad / Unsplash

Manchmal stößt du beim Arbeiten mit Docker auf ein Problem: Du möchtest ein Netzwerk löschen, bekommst aber die Fehlermeldung „Active Endpoints“. In diesem Artikel zeige ich dir, wie du mithilfe eines einfachen Skripts die IP-Adressen der Container in deinen Docker-Netzwerken anzeigen lassen kannst. So kannst du das Problem effizient lösen – auch wenn du kein Docker-Experte bist.


1. Warum tritt der Fehler „Active Endpoints“ auf?

Der Fehler „Active Endpoints“ tritt auf, wenn sich noch aktive Container in einem Netzwerk befinden, das du löschen möchtest. Docker schützt so deine laufenden Dienste vor unbeabsichtigtem Abbruch. Bevor du ein Netzwerk entfernen kannst, musst du die aktiven Container identifizieren und gegebenenfalls stoppen.

Ein tieferes Verständnis der Docker-Netzwerktypen hilft dir, dieses Verhalten zu verstehen. In einem anderen Artikel erfährst du, wie man Mastodon via Docker installiert.


2. Docker-Netzwerke verstehen

Docker-Netzwerke ermöglichen die Kommunikation zwischen Containern. Jeder Container erhält in einem Netzwerk eine eigene IP-Adresse. Wenn du wissen möchtest, welche Container einem Netzwerk zugeordnet sind, kannst du das mit dem Befehl docker network inspect herausfinden.

Falls du neu bei Docker bist, erfährst du in meinem Artikel, wie du mit Docker erste Schritte machst.


3. IP-Adressen der Container anzeigen lassen

Um die IP-Adressen aller Container in deinen Netzwerken anzuzeigen, kannst du das folgende Skript verwenden. Es iteriert durch alle Docker-Netzwerke und listet die zugehörigen IP-Adressen der aktiven Container auf.

for network in $(docker network ls -q); do
  echo "IP-Adressen im Netzwerk: $(docker network inspect --format '{{.Name}}' $network)"
  docker network inspect $network | jq -r '.[0].Containers[] | .IPv4Address'
done

4. Das Skript im Detail

Schritt 1: Liste aller Netzwerke abrufen

Mit docker network ls -q erhältst du die IDs aller vorhandenen Netzwerke. Diese IDs werden in der Schleife nacheinander verarbeitet.

Schritt 2: Netzwerkinformationen anzeigen

Der Befehl docker network inspect --format '{{.Name}}' $network zeigt den Namen des aktuellen Netzwerks an.

Schritt 3: IP-Adressen extrahieren

Mit jq wird die Struktur der JSON-Ausgabe von docker network inspect genutzt, um die IP-Adressen aller Container zu extrahieren.

Wenn du noch keine Erfahrung mit Skripten hast, findest du hier eine Einführung in das Arbeiten mit Docker-CLI.


5. Problem lösen: Docker-Netzwerk entfernen

Nachdem du die aktiven Container identifiziert hast, kannst du sie stoppen oder entfernen. Nutze dafür die folgenden Befehle:

Container entfernen:

docker rm <container_id>

Container stoppen:

docker stop <container_id>

Danach kannst du das Netzwerk problemlos löschen:

docker network rm <network_id>

Fazit

Mit diesem Skript kannst du nicht nur die IP-Adressen deiner Docker-Container anzeigen lassen, sondern auch effektiv das Problem „Active Endpoints“ lösen. Das spart dir Zeit und verhindert mögliche Fehlkonfigurationen. Wenn du mehr über Docker erfahren möchtest, findest du in meinem Artikel weiterführende Tipps für Docker-Setups.