Obtenir l'adresse IP d'un conteneur Docker

Isaac Tony 30 janvier 2023
  1. Connectez-vous au réseau Bridge et obtenez l’adresse IP d’un conteneur Docker
  2. Utilisez docker inspect pour obtenir l’adresse IP d’un conteneur Docker
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.

Auteur: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

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

Article connexe - Docker Container