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?
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>
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
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>
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
.