Heim Betrieb und Instandhaltung Docker Ändern Sie das Docker-Standard-Gateway

Ändern Sie das Docker-Standard-Gateway

Oct 26, 2020 pm 05:00 PM
docker 默认网关

Ändern Sie das Docker-Standard-Gateway

Hintergrund des Artikels:

Wenn wir Docker in einem lokalen Netzwerk verwenden, ist eine der häufigsten Verwirrungen, auf die wir stoßen, dass das Netzwerk manchmal über Netzwerksegmente hinweg blockiert ist. Der Grund dafür ist, dass das von Docker standardmäßig generierte Gateway manchmal mit unserem LAN-Segment in Konflikt steht. Wenn Docker beispielsweise auf einer Maschine im Netzwerksegment 172.16 bereitgestellt wird und die resultierende Docker0-Netzwerkbrücke das Netzwerksegment 172.17 ist, ist dies der Fall Es liegt ein Konflikt zwischen Maschinen im Netzwerksegment vor (d. h. die Maschine im Netzwerksegment 172.17 kann nicht angepingt werden).

(Empfohlenes Tutorial: Docker-Tutorial)

Um Konflikte zu vermeiden, fällt mir als Erstes ein, das Gateway zu ändern. Das Beispiel ist wie folgt (am Beispiel von Centos):

service docker stop
# 删除docker防火墙过滤规则
iptables -t nat -F POSTROUTING
# 删除docker默认网关配置
ip link set dev docker0 down
ip addr del 172.17.0.1/16 dev docker0
# 增加新的docker网关配置
ip addr add 192.168.2.1/24 dev docker0
ip link set dev docker0 up
# 检测是否配置成功,如果输出信息中有 192.168.5.1,则表明成功
ip addr show docker0
service docker start
# 验证docker防火墙过滤规则
Nach dem Login kopieren

Danach ändern, ist es zuverlässig? Die Antwort lautet „Nein“, denn nach dem Neustart von Docker wird docker0 möglicherweise noch neu erstellt und überschreibt dabei die von uns vorgenommenen Änderungen. Es zeigt, dass die IP-Regeln von Docker fest codiert sind und wir sie nicht nach Belieben ändern dürfen. Aber lasst uns unsere Denkweise ändern, docker0 direkt töten und eine neue Brücke neu erstellen:

Zuerst müssen wir das Bridge-Erstellungstool brctl installieren:

sudo yum install -y bridge-utils
Nach dem Login kopieren

Starten Sie den Erstellungsvorgang:

# 1.停止 Docker 服务
service docker stop
 
# 2.创建新的网桥(新的网段)
brctl addbr bridge0
ip addr add 192.168.2.1/24 dev bridge0
ip link set dev bridge0 up
 
# 3.确认网桥信息
ip addr show bridge0
# 4.修改配置文件
/etc/docker/daemon.json(如不存在则创建一个 touch daemon.json),使Docker启动时使用自定义网桥
 
{
  "bridge": "bridge0"
}
# 5.重启 Docker
service docker start
    
# 确认 NAT 网络路由
iptables -t nat -L -n
 
# 6.删除不再使用的网桥
ip link set dev docker0 down
 
brctl delbr docker0
 
iptables -t nat -F POSTROUTING
Nach dem Login kopieren

Bezüglich der in Schritt 4 vorgenommenen geänderten Konfiguration finden Sie hier ist das Zitat Die neue Bridge kann tatsächlich in der Docker-Konfigurationsdatei referenziert werden:

echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/sysconfig/docker
sudo service docker start
Nach dem Login kopieren

Dies bedeutet jedoch nicht, dass wir die benutzerdefinierte Docker-Konfigurationsdatei definitiv sehen können, wenn es keine Standard-/Docker- oder Sysconfig-/Docker-Dateien gibt. Es wird schwieriger sein. Lösen Sie es. Die Methode lautet wie folgt:

$ vi /lib/systemd/system/docker.service
#添加一行
$ EnvironmentFile=-/etc/default/docker
或者
$ EnvironmentFile=-/etc/sysconfig/docker
#-代表ignore error
 
#并修改
$ ExecStart=/usr/bin/docker daemon -H fd://
#改成
$ ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS
#这样才能使用/etc/default/docker里定义的DOCKER_OPTS参数
 
$ systemctl daemon-reload 重载
$ sudo service docker restart
Nach dem Login kopieren

Nachdem wir die Erstellung von Bridge0 abgeschlossen und von Docker0 zu Bridge0 gewechselt haben, können wir es weiterleiten, um zu bestätigen, ob es ein 172.17-Netzwerksegment gibt, das wir nicht sehen möchten :

Ändern Sie das Docker-Standard-Gateway

Solange dies nicht der Fall ist, werden wir nicht nur das Herz mit der Maschine im Netzwerksegment 172.17 verbinden. Wenn noch eine vorhanden ist, verwenden Sie die IP-Adresse del 172.17.0.1/16 dev docker0, bis sie gelöscht ist (da eine neue Docker-Brücke eingerichtet wurde, hat das Löschen der alten keine Auswirkungen auf die Verwendung von Docker).

Wenn die von brctl erstellte Netzwerkbrücke nach dem Neustart der Maschine möglicherweise verloren geht, können wir den folgenden Befehl in das Linux-Selbststartskript schreiben und es bei jedem Neustart ausführen:

brctl addbr bridge0
ip addr add 192.168.2.1/24 dev bridge0
ip link set dev bridge0 up
Nach dem Login kopieren

Das Selbststartskript kann übergeben werden in /etc/rc Fügen Sie ausführbare Anweisungen (z. B. sh /opt/script.sh &) zur .local-Datei hinzu. Auf diese Weise kann grundsätzlich bei jedem Neustart der Maschine sichergestellt werden, dass Bridge0 erstellt wird und der Docker-Dienst normal gestartet werden kann.

Außerdem: Wenn Sie nur den IP-Netzwerksegmentkonflikt lösen möchten und nicht bereit sind, den oben genannten komplizierten Prozess durchzuführen, können Sie einfach /etc/docker/daemon.json ändern, indem Sie den Inhalt „bip“ hinzufügen: „ip/ netmask". Ändern Sie das Netzwerksegment der Docker0-Bridge wie folgt:

[root@iZ2ze278r1bks3c1m6jdznZ ~]# cat /etc/docker/daemon.json
{
 "bip":"192.168.2.1/24"
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonÄndern Sie das Docker-Standard-Gateway. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1666
14
PHP-Tutorial
1273
29
C#-Tutorial
1252
24
So verlassen Sie den Container mit Docker So verlassen Sie den Container mit Docker Apr 15, 2025 pm 12:15 PM

Vier Möglichkeiten zum Beenden von Docker Container: Verwenden Sie Strg D im Befehl Container Terminal ENGEBOT IM Container Terminal verwenden Sie Docker Stop & lt; container_name & gt; Befehl verwenden Sie Docker Kill & lt; container_name & gt; Befehl im Host -Terminal (Force Exit)

So kopieren Sie Dateien in Docker nach außen So kopieren Sie Dateien in Docker nach außen Apr 15, 2025 pm 12:12 PM

Methoden zum Kopieren von Dateien in externen Hosts in Docker: Verwenden Sie den Befehl Docker CP: Docker CP [Optionen] & lt; Containerpfad & gt; & lt; Host -Pfad & gt;. Verwenden von Datenvolumina: Erstellen Sie ein Verzeichnis auf dem Host und verwenden Sie den Parameter -V, um das Verzeichnis in den Container zu montieren, um den Container zu erstellen, um eine bidirektionale Dateisynchronisation zu erreichen.

So starten Sie einen Container von Docker So starten Sie einen Container von Docker Apr 15, 2025 pm 12:27 PM

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.

So starten Sie Docker neu So starten Sie Docker neu Apr 15, 2025 pm 12:06 PM

So starten Sie den Docker -Container neu: Holen Sie sich die Container -ID (Docker PS); Stop den Container (Docker Stop & lt; Container_id & gt;); Starten Sie den Container (Docker start & lt; container_id & gt;); Stellen Sie sicher, dass der Neustart erfolgreich ist (Docker PS). Andere Methoden: Docker Compose (Docker-Compose Neustart) oder Docker-API (siehe Docker-Dokumentation).

So überprüfen Sie den Namen des Docker -Containers So überprüfen Sie den Namen des Docker -Containers Apr 15, 2025 pm 12:21 PM

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So starten Sie MySQL von Docker So starten Sie MySQL von Docker Apr 15, 2025 pm 12:09 PM

Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen

So erstellen Sie Container für Docker So erstellen Sie Container für Docker Apr 15, 2025 pm 12:18 PM

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]

So sehen Sie Protokolle von Docker So sehen Sie Protokolle von Docker Apr 15, 2025 pm 12:24 PM

Zu den Methoden zum Anzeigen von Docker -Protokollen gehören: Verwenden des Befehls docker Protokolle, z. cat /var/log/container_name.log Verwenden Sie den Befehl docker-compose-Protokolle von Docker Compose, zum Beispiel: Docker-compose -f Docker-com

See all articles