Question Comment obtenir l'adresse IP d'un conteneur Docker à partir de l'hôte?


Y at-il une commande que je peux exécuter pour obtenir l'adresse IP du conteneur à partir de l'hôte après la création d'un nouveau conteneur?

Fondamentalement, une fois que Docker crée le conteneur, je veux lancer mes propres scripts de déploiement de code et de configuration de conteneur.


763
2018-06-17 22:10


origine


Réponses:


docker inspect <container id> | grep "IPAddress"


115
2018-01-04 20:01



le --format option d'inspection vient à la rescousse.

La syntaxe du client Docker moderne:

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

Ancienne syntaxe du client Docker:

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

Ce qui retournera juste l'adresse IP.


1164
2017-12-19 15:56



Vous pouvez utiliser docker inspect <container id>

Exemple:

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

451
2018-06-17 22:37



Obtenez d'abord l'ID du conteneur:

docker ps

(La première colonne est pour l'ID du conteneur)

Utilisez l'ID du conteneur pour l'exécuter:

docker inspect <container ID>

En bas, sous "NetworkSettings", vous pouvez trouver "IPAddress"

Ou faites simplement:

docker inspect <container id> | grep "IPAddress"

280
2017-09-19 22:08



Pour obtenir tous les noms de conteneur et leurs adresses IP en une seule commande.

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

Si vous utilisez docker-compose la commande sera ceci:

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

La sortie sera:

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

84
2018-01-12 16:52



Ajoutez ce script shell dans votre ~/.bashrc ou un fichier pertinent:

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

Ensuite, pour obtenir une adresse IP d'un conteneur, faites simplement ceci:

docker-ip YOUR_CONTAINER_ID

Pour la nouvelle version du Docker, veuillez utiliser les éléments suivants:

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

79
2017-11-18 00:04



Afficher toutes les adresses IP des conteneurs:

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

30
2018-04-27 07:50



Dans Docker 1.3+, vous pouvez également le vérifier via les étapes ci-dessous:

Entrez le Docker en cours d'exécution:

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

28
2017-11-02 00:05