Abrufen der IP-Adresse eines Docker-Containers

Isaac Tony 21 Mai 2022
  1. Verbinden Sie sich mit dem Bridge-Netzwerk und rufen Sie die IP-Adresse eines Docker-Containers ab
  2. Mit docker inspect die IP-Adresse eines Docker-Containers ermitteln
Abrufen der IP-Adresse eines Docker-Containers

Dieses Tutorial zeigt, wie Sie die IP-Adresse einer Docker-Container-IP-Adresse erhalten.

Verbinden Sie sich mit dem Bridge-Netzwerk und rufen Sie die IP-Adresse eines Docker-Containers ab

Einer der wesentlichen Gründe, warum Docker-Container so praktisch sind, ist, dass wir sie einfach verbinden können. Dadurch können Container kommunizieren und Ressourcen einfach gemeinsam nutzen.

Wir können Container auch mit No-Docker-Workloads verbinden.

In diesem Artikel geht es nicht um Docker-Netzwerke; Daher werden wir uns nicht mit den Besonderheiten des Docker-Netzwerks befassen. Docker bietet jedoch verschiedene Treiber, die das Netzwerk mithilfe von Bridge-Treibern austauschbar machen.

Docker ermöglicht es uns, Netzwerke mit seinen Standardtreibern, die als Bridge-Treiber bekannt sind, zu erstellen. Das Bridge-Netzwerk ist jedoch privat und hat einen begrenzten Umfang für Container auf dem Host.

Sie können die Standardnetzwerke auf Ihrem Host und die, die Sie zuvor hatten, anzeigen. Jede Docker-Installation enthält normalerweise die drei unten gezeigten Standardnetzwerke.

isaac@DESKTOP-HV44HT6:~$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
9729860fa596   bridge    bridge    local
0667c3f7d0f0   host      host      local
c3273b158256   none      null      local

Docker startet immer neue Container im Bridge-Netzwerk, sofern nicht anders angegeben.

Container-IP-Adressen sind ein wesentlicher Bestandteil von Netzwerk-Docker-Containern. Typischerweise wird Containern für jedes Netzwerk, das sie verbinden, eine IP-Adresse zugewiesen.

Andererseits können Sie einen Docker-Container auch manuell mit dem Bridge-Netzwerk verbinden, indem Sie den folgenden Befehl verwenden.

$ docker run -dt rabbitmq

Dadurch wird ein Docker-Container erstellt und dem Bridge-Netzwerk zugewiesen. Bevor wir das Netzwerk überprüfen können, um zu bestätigen, dass es damit verbunden ist, sollten wir zunächst sicherstellen, dass der Container ausgeführt wird.

$ 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

Durch die Untersuchung des Bridge-Netzwerks können wir die mit den Netzwerken verbundenen Container anzeigen, neben anderen Details wie den IP-Adressen der Container und dem Standard-Subnetz für den Container. Die Details werden im JSON-Format zurückgegeben, wie unten gezeigt.

~$ docker network inspect bridge

Ausgabe:

"ConfigOnly": false,
        "Containers": {
            "42487cad0390a8de6d1a88bc1d6c09ffdf3162dc85d4d5d3dc70200b2348b673": {
                "Name": "compassionate_keller",
                "EndpointID": "ffa55232565d3a32d1e471d0753c1f491d6131a5cca50b8b76bc43a8ff554e32",
                "MacAddress": "02:42:ac:11:00:04",
                "IPv4Address": "172.17.0.4/16",
                "IPv6Address": ""
            }

Die IP-Adresse für unseren Container im obigen Beispiel lautet 172.17.0.4/16.

Wir können auch mehrere Container mit dem Netzwerk verbinden, und wir können die IP-Adressen von beiden leicht finden, indem wir das Bridge-Netzwerk untersuchen. Wie unten gezeigt, fügen wir dem Bridge-Netzwerk einen Container hinzu, der auf dem Nginx-Image basiert.

isaac@DESKTOP-HV44HT6:~$ docker run -dt nginx
4ab752ab92582a0eb2cb14475094460fc8cc608c93a357a8dca082cfea2bc368

Wenn wir nun das Bridge-Netzwerk untersuchen, können wir die IP-Adressen der beiden Container erhalten. Denken Sie daran, dass die beiden Container ausgeführt werden sollten.

isaac@DESKTOP-HV44HT6:~$ docker network inspect bridge

Ausgabe:

"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": ""
            }
        }

Die IP-Adressen der beiden Container lauten 172.17.0.4/16 und 172.17.0.2/16 in der Reihenfolge ihrer Erstellung.

Mit docker inspect die IP-Adresse eines Docker-Containers ermitteln

Wir können auch docker inspect und den Containernamen oder die Container-ID verwenden, um die IP-Adresse eines bestimmten Docker-Containers zu finden. Dadurch werden auch viele andere Details im JSON-Format zurückgegeben.

$ docker inspect 42487cad0390

Ausgabe:

"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
                }
            }

In diesem Fall haben wir den Container anhand des offiziellen Nginx-Images untersucht. In der Docker-Dokumentation finden Sie lustige Informationen zum Vernetzen von Docker-Containern.

Autor: 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

Verwandter Artikel - Docker Container