Lösung, wenn der Docker-Container nicht auf den Host-Port zugreifen kann

Lösung, wenn der Docker-Container nicht auf den Host-Port zugreifen kann

Ich bin kürzlich bei der Arbeit auf ein Problem gestoßen. Der Docker-Container konnte nicht auf das Redis des Hosts zugreifen und der Port telent6379 war blockiert.

Nach der Untersuchung stellte sich heraus, dass auf dem Server eine Firewall aktiviert war und die Firewall den Zugriff auf Port 6379 auf die Docker0-Netzwerkkarte autorisierte.

Die Funktionsweise ist wie folgt:

Firewall-Befehl --permanent --zone=trusted --change-interface=docker0

Firewall-Befehl --reload

Zusatzwissen: Docker startet den MySQL-Container und es tritt ein Fehler auf: Ports sind nicht verfügbar: listen tcp 0.0.0.0:3306

Der Fehler-Screenshot sieht wie folgt aus

Dieser Fehler wird dadurch verursacht, dass der lokale Port 3306 belegt ist. Wahrscheinlich wurde MySQL lokal installiert und der MySQL-Dienst gestartet.

Lösung 1: Öffnen Sie den Dienst, suchen Sie den MySQL-Dienst, stoppen Sie ihn oder ändern Sie den Port

Führen Sie dann den folgenden Befehl aus

docker run --name MYSQL -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -itd mysql:latest /bin/bash

Wie in der Abbildung gezeigt, ist der Start erfolgreich

Lösung 2: Portzuordnung ändern

docker run --name MYSQL -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -itd mysql:latest /bin/bash

veranschaulichen:

-p 3309:3306: -p Host-Port: Container-Port, d. h., Host-Port 3309 wird dem Container-Port 3306 zugeordnet. Wenn sich der Host bei der Container-Datenbank anmeldet, wird der Host-Port verwendet, z. B. 3309.

Die obige Lösung für das Problem, dass der Docker-Container nicht auf den Host-Port zugreifen kann, ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, dass er Ihnen als Referenz dienen kann, und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Docker ermöglicht den nahtlosen Aufruf von Shell-Befehlen zwischen Container und Host
  • Lösung für den Docker-Container, der keine Schreibberechtigung für das Host-Verzeichnis hat
  • Führen Sie die Shell oder das Programm im Docker-Container auf dem Host aus.
  • Aufrufen und Ausführen von Host-Docker-Operationen im Docker-Container
  • Detaillierte Erläuterung zur Lösung des Problems, dass der Docker-Container nicht über IP auf den Hostcomputer zugreifen kann
  • So verwenden Sie einen Docker-Container für den Zugriff auf das Host-Netzwerk
  • Lösen Sie das Problem des 8-Stunden-Unterschieds zwischen Docker-Container und Host-Computer

<<:  MySQL-Datenbank GTID realisiert Master-Slave-Replikation (super praktisch)

>>:  So legen Sie die Breite und Höhe von HTML-Tabellenzellen fest

Artikel empfehlen

Erklären Sie kurz die Verwendung von „group by“ in SQL-Anweisungen

1. Übersicht Gruppieren nach bedeutet, Daten nach...

So gehen Sie nach der MySQL-Tabellenpartitionierung problemlos online

Inhaltsverzeichnis Zweck der Tabelle Zum Beispiel...

Das WeChat-Applet implementiert einen einfachen Chatroom

In diesem Artikel wird der spezifische Code des W...

Detaillierte Erläuterung der gleichzeitigen Parameteranpassung von MySQL

Inhaltsverzeichnis Abfrage-Cache-Optimierung Über...

Beispiel für eine Methode zur Überprüfung des Status einer Linux-Firewall

So überprüfen Sie den Status der Linux-Firewall 1...

MySQL-Benutzer und -Berechtigungen und Beispiele zum Knacken des Root-Passworts

MySQL-Benutzer und -Berechtigungen In MySQL gibt ...

Zusammenfassung einiger effizienter magischer Operatoren in JS

JavaScript veröffentlicht mittlerweile jedes Jahr...

Detaillierte Erklärung der Interaktion zwischen React Native und IOS

Inhaltsverzeichnis Voraussetzungen RN übergibt We...

Einige Vorschläge zur Linux-Systemoptimierung (Kerneloptimierung)

Swap deaktivieren Wenn auf dem Server ein Datenba...

Detaillierte Erklärung zu MySQL und Springs Autocommit

1 MySQL Autocommit-Einstellungen MySQL führt stan...