Heim >Betrieb und Instandhaltung >Docker >Was tun, wenn auf die Linux-Docker-Portzuordnung nicht zugegriffen werden kann?

Was tun, wenn auf die Linux-Docker-Portzuordnung nicht zugegriffen werden kann?

PHPz
PHPzOriginal
2023-04-25 09:01:193885Durchsuche

In den letzten Jahren hat sich die Docker-Technologie im Bereich Cloud Computing rasant weiterentwickelt und ist weit verbreitet. Die Docker-Container-Technologie hilft Entwicklern nicht nur bei der bequemen Bereitstellung von Anwendungen, sondern baut auch schnell eine wiederholbare Bereitstellungsumgebung auf. Bei der Verwendung von Docker treten jedoch manchmal Probleme auf, z. B. ist die Docker-Portzuordnung nicht zugänglich. In diesem Artikel werden die Ursachen und Lösungen für diese Situation vorgestellt, in der Hoffnung, Entwicklern bei der Verwendung von Docker zu helfen.

1. Was ist Docker-Port-Mapping?

In einem Docker-Container ist es zur Erleichterung des externen Zugriffs häufig erforderlich, den Service-Port im Container dem Host zugänglich zu machen . Zu diesem Zeitpunkt müssen Sie die Docker-Portzuordnungsfunktion verwenden.

Die Docker-Portzuordnung kann einen Port im Container einem Port auf dem Host zuordnen. Ordnen Sie beispielsweise Port 80 im Container Port 8080 auf dem Host zu, sodass Sie beim Zugriff auf Port 8080 auf dem Host auf den Port 80-Dienst im Container zugreifen können.

2. Warum auf die Docker-Portzuordnung nicht zugegriffen werden kann

Bei der Verwendung von Docker stellen wir manchmal fest, dass auf die Dienste im Container nicht zugegriffen werden kann Überprüfen Sie, ob die Docker-Portzuordnung korrekt ist. Die Einstellungen sind korrekt. Wenn die Docker-Portzuordnung nicht richtig eingestellt ist, führt dies zu Unzugänglichkeit.

Häufige Gründe, warum auf die Docker-Portzuordnung nicht zugegriffen werden kann, sind die folgenden:

  1. Der Dienst im Container lauscht nicht auf die 0.0.0.0-Adresse#🎜🎜 ##🎜🎜 #
  2. Im Docker-Container geben Entwickler normalerweise die Adresse an, an der der Dienst lauscht. Der Standardwert ist 127.0.0.1, was bedeutet, dass nur lokal darauf zugegriffen werden kann. Wenn die Dienst-Abhöradresse nicht geändert wird, kann auf den Dienst im Container nicht zugegriffen werden, selbst wenn der Port auf dem Host zugeordnet ist.

Host-Firewall blockiert Port
  1. Wenn die Firewall des Hosts den von Docker zugeordneten Port blockiert, kann über die Host-Container-Dienste nicht auf Docker zugegriffen werden.

Der Port, auf dem der Container ausgeführt wird, stimmt nicht mit dem zugeordneten Port überein.
  1. Dienste, die in Docker-Containern ausgeführt werden, befinden sich möglicherweise auf nicht standardmäßigen Ports. Wann ausgeführt wird, muss die Zuordnung während der Portzuordnung durchgeführt werden. Wenn der zugeordnete Port nicht mit dem im Container ausgeführten Dienst-Port übereinstimmt, kann auf den Dienst nicht zugegriffen werden.

Docker-Container läuft nicht richtig
  1. Wenn der Docker-Container nicht richtig läuft, ist der zugeordnete Port nicht erreichbar. Sie können das Problem beheben, indem Sie das Ausführungsprotokoll des Docker-Containers anzeigen.

3. So lösen Sie das Problem der unzugänglichen Docker-Portzuordnung

Aus den oben genannten Gründen, warum die Docker-Portzuordnung nicht zugänglich ist, können die folgenden Lösungen übernommen werden:

#🎜🎜 #

Verwenden Sie die Adresse 0.0.0.0, um den Port abzuhören.

  1. Im Docker-Container können Sie beim Abhören des Service-Ports die Adresse 0.0.0.0 verwenden , was bedeutet, dass jede IP-Adresse akzeptiert werden kann.
In Node.js lautet der Code zum Ändern der Abhöradresse von 127.0.0.1 auf 0.0.0.0 beispielsweise wie folgt:

app.listen(3000, '0.0.0.0', function() {
  console.log('Server listening on port 3000');
});

Überprüfen Sie die Host-Firewall-Konfiguration

  1. Im Linux-System können Sie den Port über den folgenden Befehl öffnen:
  2. iptables -I INPUT -p tcp --dport 映射的端口号 -j ACCEPT
Zum Beispiel der Befehl zum Öffnen der Zugriffsberechtigung für Port 8080 lautet wie folgt:

sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

Problem mit der Korrektheit des zugeordneten Ports

  1. Zuerst können Sie den Befehl docker ps verwenden, um Überprüfen Sie den Ausführungsstatus des Containers, um sicherzustellen, dass der Dienst ausgeführt wird. Zweitens können Sie bei der Portzuordnung prüfen, ob der Dienst, auf dem der Port ausgeführt wird, der zuzuordnende Port ist, zum Beispiel:
  2. docker run -p 8080:80 nginx
Beim Ausführen dieses Befehls müssen Sie sicherstellen, dass der Nginx-Dienst auf dem Port ausgeführt wird Standardmäßig 80.

docker ps命令查看容器的运行状态,确保服务正在运行。其次,可以在进行端口映射时,查看服务运行端口是否为要映射的端口,例如:

rrreee

在运行这个命令时,需要确保Nginx服务默认运行在80端口。

  1. 检查Docker容器的运行日志

可以使用docker logs

Überprüfen Sie das laufende Protokoll des Docker-Containers

#🎜🎜#Sie können das Protokoll mit dem Befehl docker logs anzeigen Informationen zum laufenden Prozess des Docker-Containers. Überprüfen Sie die Protokollinformationen, um Probleme bei der Ausführung des Containers zu beheben. #🎜🎜##🎜🎜#Die oben genannten Methoden und Tipps zur Lösung des Problems der unzugänglichen Docker-Portzuordnung sind hoffentlich für alle hilfreich. #🎜🎜#

Das obige ist der detaillierte Inhalt vonWas tun, wenn auf die Linux-Docker-Portzuordnung nicht zugegriffen werden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Wie Docker Tomcat ändertNächster Artikel:Wie Docker Tomcat ändert