Docker-Compose erstellt eine Brücke, fügt ein Subnetz hinzu und löscht eine Netzwerkkarte

Docker-Compose erstellt eine Brücke, fügt ein Subnetz hinzu und löscht eine Netzwerkkarte

1. Erstellen Sie eine Docker-Netzwerkkarte

[root@i ~]# brctl addbr docker0
[root@i ~]# IP-Adresse hinzufügen 192.168.42.1/24 dev docker0  
# Die IP hier ist für die interne Verwendung in Docker, Sie können jede beliebige konfigurieren[root@i ~]# ip link set dev docker0 up
[root@i ~]# IP-Adresse zeigt Docker0
# Docker anzeigen
[root@i ~]# systemctl Neustart Docker
[root@i ~]# systemctl Neustart Docker
# Starten Sie den Docker-Dienst

2. Fügen Sie ein Subnetz hinzu

[root@i ~]# Docker-Netzwerk, Backend erstellen
# Auf diese Weise haben wir das Backend-Subnetz erstellt, und Docker-Compose kann dieses Netzwerk direkt verwenden
# Wenn das Subnetz nicht üblich ist, verwenden Sie den folgenden Befehl, um das Sicherheitsproblem zu überspringen [root@i ~]# docker network create backend --subnet 172.24.24.0/24
 
[root@i ~]# Docker-Netzwerk ls
NETZWERK-ID-NAME TREIBER-UMFANG
6afff4d90f05 Backend-Brücke lokal
57de7f32064e Brücke Brücke lokal
4b44a5340d6e Host Host lokal
ac8e8ffe243f keine null lokal

Hier sehen Sie das Backend

3. Löschen Sie die Netzwerkkarte

[root@i ~]# brctl anzeigen
#Überprüfen Sie den Bridge-Status Bridge-Name Bridge-ID STP-fähige Schnittstellen
br-5db3fa0c465f 8000.02424cfb3937 nein veth038d483
                            veth2950f5c
                            veth669dc5e
                            veth715203f
                            veth9f31643
                            vethd0f5330
docker0 8000.3a4803cd6298 nein veth9d3badb
                            vethd7530fd
[root@i ~]# brctl delif <Brückenname> <Portname>
#Deinstallieren Sie den Port auf der Bridge [root@i ~]# ifconfig
# Prüfen Sie, ob eine Bridge-Netzwerkkarte mit dem Namen [root@i ~]# vorhanden ist ifconfig <bridge name> down
#Schalten Sie diese Netzwerkkarte aus[root@i ~]# brctl delbr <Bridge-Name>
#Lösche die Brücke

Ergänzung: Die ultimative Lösung für den Konflikt zwischen der von Docker-Compose automatisch erstellten Brücke und dem LAN

1. Problembeschreibung

Wenn Sie Docker-Compose zum Bereitstellen von Anwendungen verwenden, ist der Standardnetzwerkmodus von Docker Bridge und das Standardnetzwerksegment 172.17.0.1/16. Leider verwendet das LAN unserer eigenen physischen Maschine auch das Netzwerksegment 172.18.0.1/16.

Nach der Ausführung von docker-compose -f docker-compose.yml up -d zum Bereitstellen des Dienstes verwendet die automatisch generierte Bridge wiederum 172.18.xx, aber etwas Trauriges ist passiert. Die von Docker generierte Brücke steht in Konflikt mit dem lokalen Netzwerk.

So begann die lange Reise zur Baidu-Programmierung ... Allerdings fand ich über Baidu und Google immer wieder viele Blogs, die voneinander kopiert waren, und versuchte es schließlich immer wieder und scheiterte, konnte mein Problem jedoch letztendlich nicht lösen. Daher wurde dieser Artikel mit einem Goldgehalt von 99,99999999999999999999999999 % veröffentlicht.

Docker-Version für dieses Experiment

[root@node100 docker-compose]# docker info | grep 'Serverversion'
 Serverversion: 19.03.12

2. Lösung

Stoppen Sie den von Docker-Compose erstellten Container

docker-compose -f docker-compose.yml down

Docker-Container manipulieren

# Stoppen Sie den Docker-Container sudo systemctl stop docker
# Stoppen Sie die Docker0-Brücke sudo ip link set dev docker0 down
# Löschen Sie die Docker0-Brücke sudo brctl delbr docker0
# Iptables zurücksetzen
sudo iptables -t nat -F POSTROUTING

PS

# Linux-Brctl-Befehl nicht gefunden, installieren Sie Brctl 
yum installiere Bridge-Utils -y

daemon.json ändern

# Bearbeiten Sie die Datei daemon.json vim /etc/docker/daemon.json
# Fügen Sie den folgenden Inhalt hinzu, einschließlich der Einstellung des IP-Segments des Docker-Containers „default-address-pools“: [
  {
   "Basis": "192.168.0.0/16",
   "Größe" : 24
  }
]

PS

Hinweis: Wenn daemon.json andere Inhalte enthält, denken Sie daran, diese durch Kommas zu trennen.

Starten Sie den Docker-Container neu

sudo systemctl daemon-reload
sudo systemctl starte Docker

Installieren Sie den Docker-Compose-Befehl neu und starten Sie ihn

docker-compose -f docker-compose.yml up -d

3. Expansionsplan

Klicken Sie hier, um einige Lösungen von ISSUES-Meistern zu erhalten

Lösung 1

Lösung 2

Option 3

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 fügt eine Brücke hinzu und legt den IP-Adressbereich fest
  • 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

<<:  Deaktivieren der AutoVervollständigen-Funktion im Eingabefeld

>>:  Vergleich von CSS-Schatteneffekten: Schlagschatten und Box-Schatten

Artikel empfehlen

Auszeichnungssprache - Liste

Standardisierte Designlösungen – Auszeichnungsspr...

So verweisen Sie auf jQuery in einer Webseite

Die Referenzierung ist über CDN (Content Delivery ...

So erstellen Sie einen Trigger in MySQL

In diesem Artikelbeispiel wird der spezifische Co...

2017 neueste Version der Windows-Installation MySQL-Tutorial

1. Laden Sie zunächst die neueste Version von MyS...

Python schreibt die Ausgabe in den CSV-Vorgang

Wie unten dargestellt: def test_write(selbst): Fe...

...

Erkunden Sie die gängigen VMware ESXI CLI-Befehle

Inhaltsverzeichnis 【Allgemeine Befehle】 [Zusammen...

Beheben Sie den Fehler beim Löschen von MySQL-Benutzern

Als der Autor MySQL zum Hinzufügen eines Benutzer...

So starten Sie ein JAR-Paket und führen es unter Linux im Hintergrund aus

Der Linux-Befehl zum Ausführen des JAR-Pakets lau...

So verwenden Sie Docker-Compose zum Erstellen eines ELK-Clusters

Auf alle Orchestrierungsdateien und Konfiguration...

Verwendung des Linux-Stat-Befehls

1. Befehlseinführung Der Befehl stat wird verwend...

Vue3-Kompilierungsprozess - Quellcodeanalyse

Vorwort: Vue3 ist schon seit langem verfügbar. Vo...