Frage Wie bekomme ich die IP-Adresse eines Docker-Containers vom Host?


Gibt es einen Befehl, den ich ausführen kann, um die IP-Adresse des Containers direkt vom Host abzurufen, nachdem ein neuer Container erstellt wurde?

Nachdem Docker den Container erstellt hat, möchte ich meine eigenen Code-Deployment- und Container-Konfigurationsskripts erstellen.


763
2018-06-17 22:10


Ursprung


Antworten:


docker inspect <container id> | grep "IPAddress"


115
2018-01-04 20:01



Das --format Die Option inspect kommt zur Rettung.

Moderne Docker-Client-Syntax:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

Alte Docker-Client-Syntax:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id

Die gibt nur die IP-Adresse zurück.


1164
2017-12-19 15:56



Sie können verwenden docker inspect <container id>

Beispiel:

CID=$(docker run -d -p 4321 base nc -lk 4321);
docker inspect $CID

451
2018-06-17 22:37



Erhalte zuerst die Container-ID:

docker ps

(Die erste Spalte steht für die Container-ID)

Verwenden Sie die Container-ID zum Ausführen von:

docker inspect <container ID>

Unten, unter "NetworkSettings", finden Sie "IPAddress"

Oder mach einfach:

docker inspect <container id> | grep "IPAddress"

280
2017-09-19 22:08



Um alle Containernamen und ihre IP-Adressen in nur einem einzigen Befehl zu erhalten.

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

Wenn Sie verwenden docker-compose Der Befehl wird dies sein:

docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

Die Ausgabe wird sein:

/containerA - 172.17.0.4
/containerB - 172.17.0.3
/containerC - 172.17.0.2

84
2018-01-12 16:52



Fügen Sie dieses Shell-Skript in Ihrem ein ~/.bashrc oder relevante Datei:

docker-ip() {
  docker inspect --format '{{ .NetworkSettings.IPAddress }}' "$@"
}

Um dann die IP-Adresse eines Containers zu erhalten, tun Sie Folgendes:

docker-ip YOUR_CONTAINER_ID

Für die neue Version des Docker verwenden Sie bitte Folgendes:

docker-ip() {
        docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$@"
}

79
2017-11-18 00:04



Zeige alle Container IP-Adressen:

docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

30
2018-04-27 07:50