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

So verwenden Sie jconsole zum Überwachen von Remote-Tomcat-Diensten

Was ist JConsole JConsole wurde in Java 5 eingefü...

Detaillierte Erklärung zum MySQL-Datenarchivierungstool mysql_archiver

Inhaltsverzeichnis I. Überblick 2. pt-archiver Ha...

CSS kompletter Parallax-Scrolling-Effekt

1. Was ist Beim Parallax-Scrolling handelt es sic...

So implementieren Sie den Dienststatus zur Nginx-Konfigurationserkennung

1. Überprüfen Sie, ob das Modul „Status prüfen“ i...

Erste Schritte mit den JavaScript-Grundlagen

Inhaltsverzeichnis 1. Wo man JavaScript schreibt ...

Die vollständige Liste der MIME-Typen

Was ist ein MIME-TYP? 1. Zunächst müssen wir vers...

Detaillierte Erläuterung des Redo-Logs und Undo-Logs in MySQL

Die wichtigsten Protokolle im MySQL-Protokollsyst...

JavaScript-Lösung für die Setinterval-Verzögerung um eine Sekunde

Bei Verwendung von setinterval wird festgestellt,...

Detaillierter Installationsprozess von Jenkins unter Linux

Inhaltsverzeichnis 1. Installieren Sie JDK 2. Jen...

Mysql GTID Mha-Konfigurationsmethode

Gtid + Mha + Binlog-Serverkonfiguration: 1: Testu...