Comment obtenir L'adresse IP d'un conteneur docker en cours d'exécution

j'utilise Docker pour Mac, j'exécute un microservice basé sur nodejs dans un conteneur docker. Je veux tester node microservice à travers le navigateur. Comment obtenir l'adresse IP d'un conteneur docker en cours d'exécution?

28
demandé sur user3067875 2017-04-29 10:24:59

4 réponses

si vous ne voulez pas cartographier les ports de votre hôte vers le conteneur, vous pouvez accéder directement à l'ip docker range pour le conteneur. Cette plage n'est accessible par défaut que depuis votre hôte. Vous pouvez vérifier les données de votre réseau de conteneurs en faisant:

docker inspect <containerNameOrId>

il est probablement préférable de filtrer:

docker inspect <containerNameOrId> | grep '"IPAddress"' | head -n 1

habituellement, la plage ip par défaut du docker est 172.17.0.0/16. Votre hôte doit être 172.17.0.1 et votre premier conteneur doit être 172.17.0.2 si tout est normal et vous n'avez pas spécifié toutes les options réseau spéciales.

EDIT Une autre façon plus élégante d'utiliser les fonctionnalités de docker au lieu de "bash tricking":

docker inspect -f "{{ .NetworkSettings.IPAddress }}" <containerNameOrId>
38
répondu OscarAkaElvis 2017-10-18 18:41:49

si vous souhaitez obtenir ce droit dans le conteneur, vous pouvez essayer

ip a | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep 172.17
4
répondu Ilya Yevlampiev 2017-11-10 16:07:08

Utilisez l'option -- format pour obtenir seulement l'adresse IP à la place des informations du conteneur entier:

sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER ID>
3
répondu Nilesh Patel 2018-04-23 19:22:32

vous pouvez démarrer votre conteneur avec le drapeau -P. Cela "assigne" un port aléatoire au port exposé de votre image.

docker port <container id> Vous pouvez voir le port choisi au hasard. L'accès est alors possible via localhost:port.

1
répondu gScht 2017-04-29 18:08:20