Docke-Fehlerbericht über nicht überlappende IPv4-Adresspools unter den Standardeinstellungen für die Zuweisung zum Netzwerk beheben

Ich habe kürzlich Docker zum Erstellen einer Webanwendung verwendet, bin jedoch beim Starten des Containers auf ein Problem gestoßen: Nicht überlappender IPv4-Adresspool unter den Standardeinstellungen, die dem Netzwerk zugewiesen werden sollen. Nachdem ich nach Informationen gesucht und geübt hatte, habe ich die Lösung gefunden, und jetzt werde ich sie mit Ihnen teilen.

Zunächst müssen wir das Konzept der Vernetzung in Docker verstehen. Docker implementiert die Kommunikation zwischen Containern über das Netzwerk, einschließlich der Kommunikation zwischen dem Container und dem Host. Docker platziert jeden Container standardmäßig in einem virtuellen Netzwerk und jedes virtuelle Netzwerk verfügt über einen eigenen IP-Adresspool, dem der Container IP-Adressen zuweisen kann.

Wenn wir den Container erstellen, erstellt Docker automatisch ein virtuelles Standardnetzwerk, das das Subnetz 172.17.0.0/16 verwendet. Wenn wir beim Erstellen des Containers angeben, dass dieses Netzwerk verwendet werden soll, wird jedem Container automatisch eine IP-Adresse innerhalb dieses Subnetzes zugewiesen. Wenn wir jedoch mehrere Container erstellen und diese alle das Standardnetzwerk verwenden, kommt es zu überlappenden IP-Adresspools, die diesen Fehler verursachen.

Um dieses Problem zu vermeiden, können wir manuell ein benutzerdefiniertes virtuelles Netzwerk erstellen, einen anderen IP-Adresspool angeben und diesen dann beim Starten des Containers als Netzwerk angeben. Hier ist Beispielcode:

docker network create --driver bridge --subnet=192.168.0.0/16 my-network

Dieser Code erstellt ein Netzwerk namens „my-network“ unter Verwendung des Subnetzes 192.168.0.0/16 und gibt es als Bridge-Treiber an. Wir können die Subnetz- und Treiberwerte nach Bedarf ändern.

Als nächstes müssen wir beim Starten des Containers ihn als das oben erstellte Netzwerk angeben. Hier ist Beispielcode:

docker run -d --name my-container --network my-network java-app

In diesem Code nennen wir den Java-Anwendungscontainer „my-container“ und geben ihn als „my-network“ an. Auf diese Weise wird dem Container eine IP-Adresse aus dem angegebenen Netzwerk zugewiesen.

Zusammenfassend lässt sich sagen, dass wir den nicht überlappenden IPv4-Adresspool unter den Standardeinstellungen, die dem Netzwerkfehler zugewiesen werden sollen, beheben können, indem wir manuell ein benutzerdefiniertes virtuelles Netzwerk erstellen und es als Netzwerk für den zu startenden Container zuweisen. Ich hoffe, dieser Artikel hilft Ihnen!

Supongo que te gusta

Origin blog.csdn.net/liuqingup/article/details/131292952
Recomendado
Clasificación