Obtenir l'adresse IP d'un conteneur Docker
- Connectez-vous au réseau Bridge et obtenez l’adresse IP d’un conteneur Docker
-
Utilisez
docker inspect
pour obtenir l’adresse IP d’un conteneur Docker
Ce didacticiel montre comment obtenir l’adresse IP d’une adresse IP de conteneur Docker.
Connectez-vous au réseau Bridge et obtenez l’adresse IP d’un conteneur Docker
L’une des principales raisons pour lesquelles les conteneurs Docker sont si pratiques est que nous pouvons facilement les connecter. Cela permet aux conteneurs de communiquer et de partager facilement des ressources.
Nous pouvons également connecter des conteneurs à des charges de travail sans docker.
Cet article ne concerne pas la mise en réseau Docker ; par conséquent, nous n’approfondirons pas les spécificités de la mise en réseau docker. Cependant, docker fournit divers pilotes qui rendent la mise en réseau enfichable à l’aide des pilotes Bridge.
Docker nous permet de créer des réseaux en utilisant ses pilotes par défaut appelés pilotes de pont. Cependant, le réseau de pont est privé avec une portée limitée aux conteneurs sur l’hôte.
Vous pouvez afficher les réseaux par défaut sur votre hébergeur et ceux que vous aviez précédemment. Chaque installation de docker inclut généralement les trois réseaux par défaut indiqués ci-dessous.
isaac@DESKTOP-HV44HT6:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
9729860fa596 bridge bridge local
0667c3f7d0f0 host host local
c3273b158256 none null local
Docker lancera toujours de nouveaux conteneurs dans le réseau de pont, sauf indication contraire.
Les adresses IP de conteneur sont une partie essentielle des conteneurs Docker de mise en réseau. En règle générale, les conteneurs se voient attribuer une adresse IP pour chaque réseau auquel ils se connectent.
D’autre part, vous pouvez également connecter manuellement un conteneur docker au réseau de pont à l’aide de la commande ci-dessous.
$ docker run -dt rabbitmq
Cela créera un conteneur docker et l’affectera au réseau de pont. Avant de pouvoir inspecter le réseau pour confirmer qu’il y est connecté, nous devons d’abord nous assurer que le conteneur est en cours d’exécution.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
42487cad0390 rabbitmq "docker-entrypoint.s…" About a minute ago Up About a minute 4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp compassionate_keller
L’inspection du réseau de pont nous permettra de visualiser les conteneurs connectés aux réseaux, entre autres détails tels que les adresses IP des conteneurs et le sous-réseau par défaut du conteneur. Les détails sont renvoyés au format JSON, comme indiqué ci-dessous.
~$ docker network inspect bridge
Production:
"ConfigOnly": false,
"Containers": {
"42487cad0390a8de6d1a88bc1d6c09ffdf3162dc85d4d5d3dc70200b2348b673": {
"Name": "compassionate_keller",
"EndpointID": "ffa55232565d3a32d1e471d0753c1f491d6131a5cca50b8b76bc43a8ff554e32",
"MacAddress": "02:42:ac:11:00:04",
"IPv4Address": "172.17.0.4/16",
"IPv6Address": ""
}
L’adresse IP de notre conteneur dans l’exemple ci-dessus est 172.17.0.4/16.
Nous pouvons également avoir plusieurs conteneurs connectés au réseau, et nous pouvons facilement trouver les adresses IP des deux en inspectant le réseau de pont. Comme indiqué ci-dessous, nous ajoutons un conteneur basé sur l’image Nginx au réseau de pont.
isaac@DESKTOP-HV44HT6:~$ docker run -dt nginx
4ab752ab92582a0eb2cb14475094460fc8cc608c93a357a8dca082cfea2bc368
Maintenant, si nous inspectons le réseau du pont, nous pourrons obtenir les adresses IP des deux conteneurs. N’oubliez pas que les deux conteneurs doivent être en cours d’exécution.
isaac@DESKTOP-HV44HT6:~$ docker network inspect bridge
Production:
"Containers": {
"42487cad0390a8de6d1a88bc1d6c09ffdf3162dc85d4d5d3dc70200b2348b673": {
"Name": "compassionate_keller",
"EndpointID": "ffa55232565d3a32d1e471d0753c1f491d6131a5cca50b8b76bc43a8ff554e32",
"MacAddress": "02:42:ac:11:00:04",
"IPv4Address": "172.17.0.4/16",
"IPv6Address": ""
},
"4ab752ab92582a0eb2cb14475094460fc8cc608c93a357a8dca082cfea2bc368": {
"Name": "trusting_keller",
"EndpointID": "a2babd11586f493cf5e57f5d9920a7f5648cf6163e77030521bef62fc9f34a63",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
}
Les adresses IP des deux conteneurs sont 172.17.0.4/16
et 172.17.0.2/16
dans l’ordre de leur création.
Utilisez docker inspect
pour obtenir l’adresse IP d’un conteneur Docker
Nous pouvons également utiliser docker inspect
et le nom du conteneur ou l’identifiant du conteneur pour trouver l’adresse IP d’un conteneur Docker spécifique. Cela renverra également de nombreux autres détails au format JSON.
$ docker inspect 42487cad0390
Production:
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "9729860fa5961eeac55f921ee787b2c82a15146cd36117b5394243be2149e929",
"EndpointID": "ffa55232565d3a32d1e471d0753c1f491d6131a5cca50b8b76bc43a8ff554e32",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.4",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:04",
"DriverOpts": null
}
}
Dans ce cas, nous avons inspecté le conteneur sur la base de l’image officielle de Nginx. Vous pouvez vous référer à la documentation Docker pour des informations amusantes sur la mise en réseau des conteneurs Docker.
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn