Vor Kurzem habe ich das Problem gelöst, dass Docker und Host im selben Netzwerksegment kommunizieren, und diesen Artikel geschrieben, um den gesamten Vorgang aufzuzeichnen. Zum Beispiel Host A und Host B sind über ein Netzwerk verbunden. Auf Host A werden mehrere Container erstellt, um einen Cluster zu bilden, aber ich hoffe, über Host B auf den Container von Host A zugreifen zu können. Natürlich können Sie auch sagen, dass die Portzuordnung sehr praktisch ist. Wenn ich mehr Ports benötige oder vorübergehend einige Ports hinzufügen muss, kann die Einrichtung mühsam sein. Wenn wir dann die IP des Containers auf Host A und die IP des Hosts im selben Netzwerk eingeben, können wir sie dann nicht direkt miteinander verbinden? 1. Docker installieren (Linux-Server) Docker installieren yum installiere Docker 2. Verwenden Sie Pipework, um eine unabhängige IP für den Docker-Container zu konfigurieren Nach der Installation des Pipework-Tools können Sie mit einem Befehl die IP-Adresse des Containers ändern oder genauer gesagt der Container-IP-Adresse eine neue Netzwerkkarte hinzufügen. wget https://github.com/jpetazzo/pipework/archive/master.zip entpacken Sie master.zip cp pipework-master/pipework /usr/local/bin/ chmod +x /usr/local/bin/pipework 3. Bearbeiten Sie die IP-Konfigurationsdatei eh0 Bearbeiten Sie die Standard-IP-Konfigurationsdatei eth0 oder ens33 (verschiedene Betriebssysteme haben unterschiedliche Namen, beispielsweise lautet der Name der Maschine, die ich betreibe, ifcfg-ens33). Geben Sie i ein, um in den Bearbeitungsmodus zu wechseln und kopieren Sie den folgenden Inhalt in die Datei TYP=Ethernet PROXY_METHOD=keine BROWSER_ONLY=nein BOOTPROTO=dhcp DEFROUTE=ja IPV4_FAILURE_FATAL=nein IPV6INIT=ja IPV6_AUTOCONF=ja IPV6_DEFROUTE=ja IPV6_FAILURE_FATAL=nein IPV6_ADDR_GEN_MODE=stabiler Datenschutz NAME=ens33 UUID=36b40bc6-6775-4e02-8161-e245d0e3892f GERÄT=ens33 #Das Folgende ist die Einstellung für den Überbrückungsteil ONBOOT=yes BRÜCKE=br0 PEERDNS=ja PEERROUTES=ja IPV6_PEERDNS=ja IPV6_PEERROUTES=ja 4. Erstellen Sie eine benutzerdefinierte Brücke br0 vim ifcfg-br0 Und kopieren Sie den Konfigurationsinhalt in die Konfigurationsdatei GERÄT=br0 BOOTPROTO=statisch NM_CINTROLLER=nein ONBOOT=ja TYP=Brücke IPADDR=192.168.186.128 NETMASK=255.255.255.0 Starten Sie den Netzwerkdienst der virtuellen Maschine neu systemctl restart network 5. Ändern Sie die Docker-Konfigurationsdatei und geben Sie die Bridge an Ändern Sie die Docker-Konfigurationsdatei /etc/sysconfig/ vim /etc/sysconfig/docker Die Änderungen sind wie folgt OPTIONEN='--selinux-enabled --log-driver=journald --signature-verification=false' Geändert zu: OPTIONEN='--selinux-enabled -b=br0' Nach der Änderung: # /etc/sysconfig/docker # Ändern Sie diese Optionen, wenn Sie die Art und Weise ändern möchten, wie der Docker-Daemon ausgeführt wird #OPTIONEN='--selinux-enabled --log-driver=journald --signature-verification=false' OPTIONEN='--selinux-enabled -b=br0' wenn [ -z "${DOCKER_CERT_PATH}" ]; dann DOCKER_CERT_PATH=/etc/docker fi # Fügen Sie dieser Datei keine weiteren Register hinzu. Verwenden Sie /etc/containers/registries.conf # stattdessen. Weitere Informationen finden Sie auf der Manpage registries.conf(5). # Speicherort für temporäre Dateien, wie sie beispielsweise erstellt werden von # Docker-Lade- und Build-Operationen. Standard ist /var/lib/docker/tmp # Kann durch Festlegen der folgenden Umgebungsvariable überschrieben werden. # DOCKER_TMPDIR=/var/tmp # Steuert den Status des Cron-Jobs /etc/cron.daily/docker-logrotate. # Zum Deaktivieren heben Sie die Kommentierung der folgenden Zeile auf. #LOGROTATE=false # Der Docker-Latest-Daemon kann durch Starten der Docker-Latest-Unitfile verwendet werden. # Um den Docker-Latest-Client zu verwenden, heben Sie die Kommentarzeichen unter den Zeilen auf #DOCKERBINARY=/usr/bin/docker-latest #DOCKERDBINARY=/usr/bin/dockerd-latest #DOCKER_CONTAINERD_BINARY=/usr/bin/docker-containerd-latest #DOCKER_CONTAINERD_SHIM_BINARY=/usr/bin/docker-containerd-shim-latest other_args='-b br0' 5. Starten Sie den Docker-Dienst neu systemctl Neustart Docker 6. Erstellen Sie eine Docker-Containerinstanz docker run -itd --name test1 --net=none centos /bin/bash --net=none bedeutet, dass die Netzwerkkarten des Containers alle leer sind und über Pipework angepasst werden müssen 7. Geben Sie die Netzwerkkarte an Rohrleitung br0 test1 192.168.186.111/[email protected] 8. Geben Sie den Container ein und versuchen Sie, den Hostcomputer und die IP-Adresse im selben Netzwerksegment anzupingen, um zu sehen, ob der Ping erfolgreich ist. # Geben Sie den Container Docker Attach Test1 ein # Ping-Host Ping 192.168.186.22 8.1 Ändern Sie die Host-IP im selben Netzwerksegment Ändern Sie die Host-IP und halten Sie das Netzwerksegment mit dem Bridge-IP-Segment von Host A konsistent. Nach der Einstellung können die Hosts A und B sich gegenseitig anpingen. # Pingen Sie dieselbe Netzwerksegment-IP Ping 192.168.186.33 An diesem Punkt ist die Kommunikation zwischen Docker-Netzwerken abgeschlossen. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Beispielcode zum Generieren eines QR-Codes mit js
>>: Zusammenfassung der Tipps zur Verwendung von coalesce() in MySQL
<br />In vielen kleinen Unternehmen besteht ...
Dieser Artikel fasst gängige Betriebstechniken fü...
1. Szenariodarstellung Das Tomcat-Protokoll melde...
1. Laden Sie das Installationspaket mysql-5.7.17-...
Inhaltsverzeichnis Vorwort: Implementierungsschri...
In diesem Artikel wird der spezifische JavaScript...
Die MySQL-Funktionen DATE_ADD(date,INTERVAL expr ...
Alle vorherigen Projekte wurden in der Windows-Sy...
Vorwort Ich bin kürzlich bei der Arbeit auf ein P...
Inhaltsverzeichnis Problemumgehung Warum kann ich...
Inhaltsverzeichnis rahmen Erstklassiges Fehlerrep...
1. Knoten löschen Führen Sie kubectl delete node ...
Nachfolgend finden Sie die Schnellbefehle zum Fre...
Inhaltsverzeichnis 1. Installation: 2. Verwendung...
In diesem Artikel wird der spezifische Code von J...