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

MySQL: Datenintegrität

Die Datenintegrität wird in Entitätsintegrität, D...

Reacts Übergang von Klassen zu Hooks

Inhaltsverzeichnis ReagierenHooks Vorwort WarumHo...

Detaillierte Erklärung der MySQL-Datenbank-Trigger

Inhaltsverzeichnis 1 Einleitung 2 Trigger-Einführ...

Foreman Ubuntu16 Schnellinstallation

Kurzanleitung Das Foreman-Installationsprogramm i...

Definieren Sie Ihre eigene Ajax-Funktion mit JavaScript

Da die von nativen JS initiierten Netzwerkanforde...

Fallbeispiel zur TypeScript-Schnittstellendefinition

Die Rolle der Schnittstelle: Schnittstelle, auf E...

Informationen zur Installationsmethode für MySQL 8.0.13-ZIP-Pakete

MySQL 8.0.13 verfügt standardmäßig über einen Dat...

So stellen Sie die LNMP-Architektur im Docker bereit

Umweltanforderungen: IP Hostname 192.168.1.1 Knot...

Entmystifizierung des HTML 5-Arbeitsentwurfs

Das World Wide Web Consortium (W3C) hat einen Entw...

js zur Implementierung eines Web-Rechners

Wie erstelle ich mit HTML, CSS und JS einen einfa...

So fragen Sie Bilder in einem privaten Register ab oder erhalten sie

Docker fragt Bilder in einem privaten Register ab...