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

Mehrere Möglichkeiten zum Aktualisieren von Batches in MySQL

Normalerweise verwenden wir die folgende SQL-Anwe...

CSS-Code zur Unterscheidung von IE8/IE9/IE10/IE11 Chrome Firefox

Das Debuggen der Website-Kompatibilität ist wirkl...

Installieren Sie eine virtuelle Python-Umgebung in Ubuntu 18.04

Nur als Referenz für Python-Entwickler, die Ubunt...

Detaillierte Schritte zur Yum-Konfiguration des Nginx-Reverse-Proxys

Teil.0 Hintergrund Die Intranetserver des Unterne...

Analyse der Prinzipien und Verwendung von Linux-Hardlinks und Softlinks

Im Linux-System gibt es einen Dateityp namens Lin...

JavaScript-Entwurfsmuster, Lernadaptermuster

Inhaltsverzeichnis Überblick Code-Implementierung...

So stellen Sie Spring Boot mit Docker bereit

Die Entwicklung der Docker-Technologie bietet ein...

Wie CSS die Zeit des weißen Bildschirms während des ersten Ladens beeinflusst

Rendering-Pipeline mit externen CSS-Dateien In de...

Wissenspunkte zum Prinzip der MySQL-Parallelitätskontrolle

Mysql ist eine gängige relationale Open-Source-Da...

So verbinden Sie Django 2.2 mit einer MySQL-Datenbank

1. Beim Ausführen des Projekts werden folgende Fe...

Remotedesktopverbindung zwischen Windows und Linux

Wenn es um eine Remotedesktopverbindung zu Linux ...