Lösung, wenn Docker plötzlich vom externen Netzwerk nicht mehr erreichbar ist

Lösung, wenn Docker plötzlich vom externen Netzwerk nicht mehr erreichbar ist

Nach den Methoden der Meister wurde die Ursache gefunden: sysctl net.ipv4.ip_forward. Tencent Cloud forderte dazu auf, die Schwachstelle zu beheben. Nach der Ausführung ihres Skripts wurde die IP-Weiterleitung deaktiviert.

Nach einigen Recherchen konnte ich das Problem über die Docker-Informationen finden.

Und Sie können sehen, dass Docker eine Warnung ausgibt

Lösung:

sudo vim /etc/sysctl.conf Ändern, speichern, dann systemctl restart network

oder

sysctl -w net.ipv4.ip_forward=1

Aber diese Behandlung kann nach einem Neustart des Servers ungültig werden?

Es gibt noch zwei weitere Warnungen, also lassen Sie uns diese gemeinsam behandeln.

WARNUNG: bridge-nf-call-iptables ist deaktiviert
WARNUNG: bridge-nf-call-ip6tables ist deaktiviert

Ergänzung: Docker-Netzwerkproblem, die externe IP des Hostcomputers kann im Docker-Container nicht angepingt werden, die externe IP anderer Computer kann jedoch angepingt werden

Problembeschreibung

Maschine A und Maschine B haben jeweils eine eigene interne und externe IP-Adresse, zum Beispiel: A-IP-intern, A-IP-extern

B-IP-innen, B-IP-außen, Maschine A hat den Domänennamen www.xxx.com

Installieren Sie den Jenkins Docker-Container auf Maschine A, starten Sie ihn und geben Sie den Container ein

#docker exec -it jenkins /bin/sh
Pingen Sie dann die interne IP von Host A im Container an, und sie kann angepingt werden. #ping A-IP-internal (172.16...) //Gibt zurück, dass sie angepingt werden kann. #ping A-IP-external (202.106...) //Ping fehlgeschlagen. #ping www.xxx.com //Kann korrekt in die externe IP von Maschine A aufgelöst werden, aber der Ping kann nicht angepingt werden. #ping baidu.com //Kann angepingt werden.

Zusätzlich:

1. Vom Hostcomputer A außerhalb des Docker-Containers ist der Ping A-IP-outside (202.106...) erfolgreich.

2. Installieren Sie den Jenkins-Container auf Maschine B und pingen Sie A-IP-external (202.106...) aus dem Container heraus.

2. Installieren Sie den Jenkins-Container auf Maschine B. Das Pingen von B-IP-external (202.106…) aus dem Container heraus ist erfolglos.

Die Suche nach verschiedenen Netzwerkproblemen, das Löschen von Containern und Images sowie die Neuinstallation von Docker funktionieren alle nicht.

Kurz gesagt: Wie kann ich die öffentliche IP des Hostcomputers selbst im Docker-Container anpingen?

Ich muss www.xxx.com im Container von Maschine A anpingen, wodurch die Intranetadresse von Maschine A aufgelöst wird.

Denn die Intranetadresse der Maschine A lässt sich aus dem Container heraus anpingen.

Neue geänderte Docker-Compose-Datei

zusätzliche_hosts:
- „www.xxx.com:172.16.xxx.A“

Nach dem Neuaufbau des Docker-Containers geben Sie den Docker-Container ein

#ping A-IP-outside (202.106...) // Erfolgreich gepingt, OK erfüllt die Anforderung

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:
  • Docker-Container greift auf MySQL-Operationen des Hosts zu
  • Docker-Container: benutzerdefinierter Host-Netzwerkzugriffsvorgang
  • Docker-Port-Mapping und externe Unzugänglichkeitsprobleme
  • So aktivieren Sie den Fernzugriff in Docker
  • Lösung für das Problem, dass der Docker-Container nicht auf Jupyter zugreifen kann
  • Beim Zugriff auf die Homepage eines im Docker-Modus gestarteten Tomcat tritt ein 404-Fehler auf
  • Docker-Image-Zugriff auf den lokalen Elasticsearch-Port-Vorgang

<<:  MySQL-Leistungsoptimierungs-Index-Pushdown

>>:  Vue implementiert einfache Kommentarfunktion

Artikel empfehlen

Eine Methode zum Erstellen von Karussellbildern mit CSS3

Diashows sieht man häufig auf Webseiten. Sie enth...

Detaillierte Schritte zur Installation und Konfiguration von MySQL 5.6.21

1. Übersicht MySQL-Version: 5.6.21 Download-Adres...

Die umfassendste package.json-Analyse

Inhaltsverzeichnis 1. Übersicht 2. Namensfeld 3. ...

Implementierung von dynamischem REM für mobiles Layout

Dynamische REM 1. Lassen Sie uns zunächst die akt...

Implementierung der MySQL-Datentypkonvertierung

1. Problem Es gibt eine Tabelle wie unten gezeigt...

Was sind die Dateiattribute von crw, brw, lrw usw. in Linux?

Was ist eine Datei? Eigentlich sind alle Dateien ...

Holen Sie sich die IP und den Hostnamen aller Hosts auf Zabbix

zabbix Zabbix ([`zæbiks]) ist eine Open-Source-Lö...

js-Methode zum Löschen eines Felds in einem Objekt

Dieser Artikel stellt hauptsächlich die Implement...

So versuchen Sie, Ihrem CSS einen Sticky-Effekt hinzuzufügen

Vorne geschrieben Ich weiß nicht, wer als Erster ...

Detaillierte Erläuterung des Selinux-Grundkonfigurationstutorials unter Linux

selinux ( Security-Enhanced Linux) ist ein Linux-...

So erstellen Sie https mit Nginx und dem kostenlosen Tencent Cloud-Zertifikat

Ich habe gelernt, wie man https bekommt. Kürzlich...

Gemeinsame MySQL-Indexwirksamkeitsbedingungen und Indexungültigkeitsbedingungen

Inhaltsverzeichnis 1. Bedingungen für das Versage...