Docker fügt eine Brücke hinzu und legt den IP-Adressbereich fest

Docker fügt eine Brücke hinzu und legt den IP-Adressbereich fest

Ich weiß nicht, ob es daran liegt, dass die Binärversion von Docker 19.03 nach der Installation die Docker0-Brücke nicht automatisch erstellt, oder ob es aus einem anderen Grund im Docker-Netzwerkmodus keine Brücke gibt.

Ich habe einen Container installiert, um den Port zuzuordnen, konnte den Port jedoch nicht sehen und es wurde kein Fehler gemeldet. Ich habe lange damit verbracht, ihn zu finden, bevor ich herausfand, dass es keine solche Brücke gab.

Ohne weitere Umschweife. Lasst uns anfangen!

Werfen wir einen Blick auf die aktuelle Situation:

Da es sich um eine Produktionsumgebung handelt, muss der Pod zuerst entfernt werden, um eine Beeinträchtigung des Geschäftsbetriebs zu vermeiden.

Erstens ist es nicht möglich, Docker Network Create xx direkt zu verwenden. Da die auf diese Weise erstellte Brücke nicht an die virtuelle Maschine angeschlossen ist, funktioniert sie nicht und erfordert möglicherweise eine andere zusätzliche Konfiguration. Ich werde hier nicht näher darauf eingehen. Um Fallstricke zu vermeiden, erwähnen Sie dies einfach.

Der gesamte Vorgang ist in der folgenden Abbildung deutlich sichtbar. Zu Ihrer Bequemlichkeit habe ich den Befehl auch kopiert.

[root@dashuaibi-server-103 jpserver]# ip a|grep docker0
[root@dashuaibi-server-103 jpserver]# brctl -h
Verwendung: brctl [Befehle]
Befehle:
 addbr <Brücke> Brücke hinzufügen
 delbr <Brücke> Brücke löschen
 addif <bridge> <device> Schnittstelle zur Bridge hinzufügen
 delif <bridge> <device> Schnittstelle von der Bridge löschen
 Haarnadelkurve <Brücke> <Port> {on|off} Haarnadelkurve ein-/ausschalten
 setageing <bridge> <time> Alterungszeit festlegen
 setbridgeprio <bridge> <prio> Brückenpriorität festlegen
 setfd <Brücke> <Zeit> Brücken-Weiterleitungsverzögerung festlegen
 sethello <Brücke> <Zeit> setze Begrüßungszeit
 setmaxage <bridge> <time> Maximales Nachrichtenalter festlegen
 setpathcost <Brücke> <Port> <Kosten> Pfadkosten festlegen
 setportprio <bridge> <port> <prio> Portpriorität festlegen
 show [ <bridge> ] zeigt eine Liste der Brücken
 showmacs <bridge> zeigt eine Liste von Mac-Adressen
 showstp <bridge> zeigt Bridge-STP-Informationen
 stp <bridge> {on|off} stp ein-/ausschalten
[root@dashuaibi-server-103 jpserver]# brctl addbr docker0
[root@dashuaibi-server-103 jpserver]# IP-Link-Set Docker0 hoch
[root@dashuaibi-server-103 jpserver]# IP-Adresse hinzufügen 192.168.0.0/16 dev docker0
[root@dashuaibi-server-103 jpserver]# cat /etc/docker/daemon.json 
{"data-root": "/docker","bridge": "keine","registry-mirrors": ["http://9b2cd203.m.daocloud.io"]}
[root@dashuaibi-server-103 jpserver]# vim /etc/docker/daemon.json 
[root@dashuaibi-server-103 jpserver]# cat /etc/docker/daemon.json 
{"data-root": "/docker","bridge": "docker0","registry-mirrors": ["http://9b2cd203.m.daocloud.io"]}
[root@dashuaibi-server-103 jpserver]# systemctl daemon-reload
[root@dashuaibi-server-103 jpserver]# systemctl Neustart Docker
[root@dashuaibi-server-103 jpserver]# ip a|grep docker0
149: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue status UNBEKANNT group default qlen 1000
 inet 192.168.0.1/16 brd 192.168.255.255 Bereich global docker0
[root@dashuaibi-server-103 jpserver]# Docker-Netzwerk ls
NETZWERK-ID-NAME TREIBER-UMFANG
edd34bc4e197 Brücke Brücke lokal
9560af3573ae Host Host lokal
22885d053744 keine null lokal
[root@dashuaibi-server-103 jpserver]#

Nach dem Neustart führen Sie den Container, dem der Port zugeordnet werden soll, erneut aus. Der Vergleich sieht wie folgt aus. Wenn zuvor keine Brücke hinzugefügt wurde, gibt es keinen Port. Nach dem Hinzufügen der Brücke. Portmapping ist normal

Der letzte Schritt besteht darin, den Fleck zu entfernen und die Planung des Knotens fortzusetzen.

kubectl uncordon 10.168.0.103

Ergänzung: Docker ändert die Standard-Bridge-IP-Adresse 172.17.0.1

Wenn der Docker-Dienst gestartet wird, wird standardmäßig eine Docker0-Brücke erstellt (mit einer internen Docker0-Schnittstelle), die andere physische oder virtuelle Netzwerkkarten auf der Kernelebene verbindet und alle Container und den lokalen Host in dasselbe physische Netzwerk stellt.

Standardmäßig gibt Docker die IP-Adresse und Subnetzmaske der Docker0-Schnittstelle an, sodass Host und Container über die Brücke miteinander kommunizieren können. Außerdem wird die MTU (die maximale Übertragungseinheit, die von der Schnittstelle empfangen werden darf) angegeben, die normalerweise 1500 Byte beträgt, oder der vom Host-Netzwerkrouting unterstützte Standardwert. Diese Werte können beim Start des Dienstes konfiguriert werden.

Sie können die Datei /etc/docker/daemon.json bearbeiten und den Inhalt „bip“ hinzufügen: „ip/netmask“ [Verwenden Sie nicht dasselbe Netzwerksegment wie der Host]

[root@localhost /]# vi /etc/docker/daemon.json 
{"bip":"192.168.100.1/24"}
systemctl Neustart Docker

Hinweis: Ich verstehe, dass die Änderung meines Freundes nicht erfolgreich war und er brctl verwendet hat, um die Brücke zu löschen. Tatsächlich lag es nur daran, dass Sie sie nicht richtig konfiguriert haben.

Einige daemon.json-Dateien enthalten beispielsweise Inhalt:

{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]} Dies ist ein privates Repository für Docker

{"Registrierungsspiegel": ["http://f1361db2.m.daocloud.io"]}
{"bip":"172.16.0.1/24"}

Diese Änderung wird nicht wirksam.

{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"bip":"172.16.0.1/24"}

Dies ist die richtige Art, es zu ändern.

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Erläuterung der Docker Compose-Netzwerkeinstellungen
  • Eine kurze Diskussion über die Docker-Compose-Netzwerkeinstellungen
  • Docker-Benutzerdefinierte Brücke Docker0 und Befehlsvorgänge zum Öffnen, Schließen und Neustarten von Docker
  • Eine Fehlerbehebungserfahrung im CentOS-Docker-Bridge-Modus, bei dem auf den Host-Redis-Dienst nicht zugegriffen werden kann
  • Docker-Compose erstellt eine Brücke, fügt ein Subnetz hinzu und löscht eine Netzwerkkarte

<<:  Wann ist die Verwendung von dl, dt und dd sinnvoll?

>>:  Verwenden Sie CSS-Variablen, um coole und erstaunliche Schwebeeffekte zu erzielen

Artikel empfehlen

So verwenden Sie das Vue-Router-Routing

Inhaltsverzeichnis 1. Beschreibung 2. Installatio...

Zwei Möglichkeiten zum Konfigurieren globaler Vue-Methoden

Inhaltsverzeichnis 1. Einleitung 2. Die erste Met...

Tutorial zur Tomcat-Konfiguration für Nginx/Httpd-Lastausgleich

Im vorherigen Blog haben wir über die Verwendung ...

Auszeichnungssprachen – Nochmal auflisten

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Einführung in Who-Befehlsbeispiele in Linux

Über wen Zeigt die am System angemeldeten Benutze...

Detaillierte Erläuterung der MySQL 8.0-Richtlinie zum Ablauf von Passwörtern

Ab MySQL 8.0.16 können Sie eine Richtlinie zum Ab...

So erstellen Sie Benutzer und verwalten Berechtigungen in MySQL

1. So erstellen Sie einen Benutzer und ein Passwo...

Beispiele für vertikale Raster und progressiven Zeilenabstand

Neue Fragen Kommen und gehen Sie in Eile. Seit de...

Optimierte Implementierung von count() für große MySQL-Tabellen

Das Folgende ist mein Urteil basierend auf der Da...

Das Linux-System verbietet den Remote-Login-Befehl des Root-Kontos

PS: So deaktivieren Sie die Remote-Anmeldung des ...