J'utilise Docker pour Mac. J'exécute un microservice basé sur nodejs dans un conteneur Docker. Je veux tester le microservice node via le navigateur. Comment obtenir l'adresse IP du conteneur Docker en cours d'exécution ?
Si vous ne souhaitez pas mapper les ports de votre hôte vers le conteneur, vous pouvez accéder directement à l'ip de la plage docker du conteneur. Par défaut, cette plage n'est accessible que depuis votre hôte. Vous pouvez vérifier les données réseau de votre conteneur en faisant :
docker inspect <containerNameOrId>
Il est probablement préférable de filtrer :
docker inspect <containerNameOrId> | grep '"IPAddress"' | head -n 1
Habituellement, la plage d'adresses IP par défaut de docker est 172.17.0.0/16
. Votre hôte devrait être 172.17.0.1
et votre premier conteneur devrait être 172.17.0.2
si tout est normal et que vous n'avez pas spécifié d'options réseau particulières.
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>
Vous pouvez démarrer votre conteneur avec le drapeau -P
. Ceci "assigne" ; un port aléatoire au port exposé de votre image.
Avec docker port <container id>
vous pouvez voir le port choisi au hasard. L'accès est alors possible via localhost:port
.