Wie man die Docker-Netzwerk-ID für jeden docker-compose-Service im aktuellen Verzeichnis findet

Führe den folgenden Befehl im Verzeichnis aus, in dem sich docker-compose.yml befindet:

docker_network_ids.sh
docker-compose -f $(find . -name 'docker-compose.yml' -type f) ps -q | xargs -I {} docker inspect --format '{{.Name}}: {{range .NetworkSettings.Networks}}{{.NetworkID}}{{end}}' {}

Beispiel-Ausgabe:

docker_network_ids_output.txt
/myservice-server-1: 3b533d2074e7230426adf0d269b399d356066130719ffd3ef68d6d492f3757f6
/myservice-ui-1: 3b533d2074e7230426adf0d269b399d356066130719ffd3ef68d6d492f3757f6

Aufschlüsselung des Befehls:

  • docker-compose -f $(find . -name 'docker-compose.yml' -type f) ps -q: Dieser Teil findet alle docker-compose.yml-Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen und führt docker-compose ps -q für jede davon aus. Dieser Befehl listet die IDs der laufenden Container für jeden in den Docker Compose-Dateien definierten Service auf.
  • xargs -I {} docker inspect --format '{{.Name}}: {{range .NetworkSettings.Networks}}{{.NetworkID}}{{end}}' {}: Dieser Teil nimmt die Container-IDs aus dem vorherigen Schritt und führt docker inspect für jeden davon aus. Es extrahiert den Namen des Containers und seine Ethernet-Interface-Informationen mit einem benutzerdefinierten Format. Es formatiert die Ausgabe als “ServiceName: NetworkID.”

Ähnliche Beiträge nach Kategorie: Docker