Docker kann keine Verbindung zum externen Netzwerk herstellen. Lösung:
1. Wenn es zuvor normal verwendet wurde und der Host auf das externe Netzwerk, aber auf den Container zugreifen kann Wenn dies nicht möglich ist, können Sie versuchen, den Docker-Dienst neu zu starten, um das Problem zu lösen:
>>>sercice docker restart #debian/ubutun中sh为dash,centos指bash >>>docker run -it -v /yourfile:/file -p 8000:8000 /bin/bash imageid >>>
2. Der Docker-Container stellt Dienste bereit und lauscht auf Port 8888. Um den externen Zugriff zu ermöglichen, ist eine Portzuordnung erforderlich.
docker run -it --rm -p 8888:8888 server:v1
Zu diesem Zeitpunkt ist ein Problem aufgetreten. Nach der Bereitstellung auf der virtuellen Maschine A kann auf den 8888-Port-Dienst in A zugegriffen werden, in B jedoch nicht.
Dies dürfte daran liegen, dass die Anfrage abgefangen wurde.
Firewall-cmd --state anzeigen
Wenn die Ausgabe „nicht ausgeführt“ lautet, FirewallD nicht ausgeführt wird und nicht alle Schutzstrategien gestartet sind, können Sie dies tun Schließen Sie aus, dass die Firewall die Verbindung blockiert.
Wenn die Ausgabe „running“ lautet, bedeutet dies, dass FirewallD derzeit ausgeführt wird. Sie müssen den folgenden Befehl eingeben, um zu sehen, welche Ports und Dienste jetzt geöffnet sind:
firewall-cmd --list-ports firewall-cmd --list-services
Es gibt zwei Lösungen :
1. Schalten Sie den FirewallD-Dienst aus:
Wenn Sie keine Firewall benötigen, schalten Sie einfach den FirewallD-Dienst direkt aus
systemctl stop firewalld.service
2 Öffnen Sie den angegebenen Port für die Außenwelt:
Wenn wir beispielsweise den externen 5000/TCP-Port jetzt öffnen möchten, können wir den folgenden Befehl verwenden:
firewall-cmd --add-port=5000/tcp --permanent firewall-cmd --reload
Wenn wir ihn nur vorübergehend öffnen Entfernen Sie für den Port den Parameter „--permanent“ in der ersten Zeile des Befehls. Diese Richtlinie wird ungültig, wenn der FirewallD-Dienst erneut gestartet wird.
IP-Weiterleitung ist nicht aktiviert
sysctl net.ipv4.ip_forward
Wenn net.ipv4.ip_forward=0 angezeigt wird, bedeutet das, dass es nicht aktiviert ist.
Öffnen Sie die Datei sysctl.conf
vi /etc/sysctl.conf
Fügen Sie den folgenden Code hinzu:
net.ipv4.ip_forward=1
Weitere verwandte Tutorials finden Sie in der Spalte Docker-Tutorial der chinesischen PHP-Website.
Das obige ist der detaillierte Inhalt vonDocker kann keine Verbindung zur externen Netzwerklösung herstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!