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

MySQL-Tabellenfeld Zeiteinstellung Standardwert

Anwendungsszenario In der Datentabelle muss die A...

Zusammenfassung einiger Gedanken zur Binlog-Optimierung in MySQL

Frage Frage 1: Wie kann der Leistungsverlust beho...

Detaillierte grafische Erklärung zur Verwendung von SVG im Vue3+Vite-Projekt

Heute habe ich bei der Verwendung von SVG in der ...

JavaScript zum Anzeigen und Ausblenden des Dropdown-Menüs

In diesem Artikel wird der spezifische Code für J...

Lösung für das Verschwinden des MySql-Dienstes aus unbekannten Gründen

Lösung für das Verschwinden des MySql-Dienstes au...

Reines HTML und CSS, um den JD-Karusselleffekt zu erzielen

Das JD-Karussell wurde mit reinem HTML und CSS im...

Das Vue-CLI-Framework implementiert eine Timer-Anwendung

Technischer Hintergrund Diese Anwendung verwendet...

Praktischer Bericht über die Entwicklung von Vue3- und TypeScript-Projekten

Inhaltsverzeichnis Überblick 1. Kompositions-API ...

Detaillierte Erklärung des Abstandsproblems zwischen IMG-Tags

Grundlegende Analyse des IMG-Tags: In HTML5 beste...

JavaScript-Canvas zum Erzielen von Meteoreffekten

In diesem Artikel wird der spezifische Code für J...

MySQL 5.6 Installationsschritte mit Bildern und Text

MySQL ist ein Open-Source-Verwaltungssystem für k...

MySQL 5.7.20 Zip-Installations-Tutorial

MySQL 5.7.20 Zip-Installation, der spezifische In...