Gibt es einen Befehl, den ich ausführen kann, um die IP-Adresse des Containers direkt vom Host zu erhalten, nachdem ein neuer Container erstellt wurde?
Im Grunde, sobald Docker den Container erstellt, möchte ich meinen eigenen Code Bereitstellung und Container-Konfiguration Skripte rollen.
Die Option --format
von 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
Damit wird nur die IP-Adresse zurückgegeben.
Wie in den Kommentaren erwähnt: Wenn Sie unter Windows arbeiten, verwenden Sie doppelte Anführungszeichen "
anstelle von einfachen Anführungszeichen '
um die geschweiften Klammern.
Sie können "docker inspect
Beispiel:
CID=$(docker run -d -p 4321 base nc -lk 4321);
docker inspect $CID
In Docker 1.3+ können Sie dies auch mit den folgenden Schritten überprüfen:
Geben Sie das laufende Docker (Linux) ein:
docker exec [container-id or container-name] cat /etc/hosts
172.17.0.26 d8bc98fa4088
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.17 mysql
Für Windows:
docker exec [container-id or container-name] ipconfig