So ändern Sie die Container-Portzuordnung in Docker dynamisch

So ändern Sie die Container-Portzuordnung in Docker dynamisch

Vorwort: Die Docker-Portzuordnung erfolgt häufig, indem der interne Port des Containers während des Docker-Run-Befehls über -p dem angegebenen Port des Hostcomputers zugeordnet wird. Im Allgemeinen wird der dem Container-Port entsprechende Port im Voraus für die Zuordnung bestimmt. In manchen Fällen müssen Sie jedoch Ports vorübergehend zuordnen. Wenn Sie beispielsweise einen MySQL-Container in Docker ausführen, ist der Standardport nicht geöffnet. Gibt es also eine Möglichkeit, den angegebenen Port im laufenden Container verfügbar zu machen? Bitte lesen Sie weiter unten--->

Methode 1: Ändern der Docker-Konfigurationsdatei (riskant)

Um unser Ziel zu erreichen, müssen wir die Docker-Konfigurationsdatei ändern. Im Allgemeinen müssen wir die folgenden Dateien ändern: config.v2.json und hostconfig.json. Der Standardpfad ist /var/lib/docker/containers/<容器名稱> .

Fahren Sie zunächst den Docker-Dienst über systemctl stop docker herunter. Ändern Sie dann die Konfigurationsinformationen „ExposedPorts“ in der Datei config.v2.json, um den internen Port des Containers hinzuzufügen, z. B. „8080/tcp“:{}. Ändern Sie dann die Konfigurationsinformationen „PortBindings“ in hostconfig.json wie unten gezeigt.

Nachdem Sie die obige Konfiguration abgeschlossen haben, starten Sie den Docker-Dienst systemctl restart docker neu und starten Sie den angegebenen Container neu, um auf den entsprechenden Port zuzugreifen. (Diese Methode ist riskant und wird für den häufigen Gebrauch nicht empfohlen)

 "Konfiguration": {
  "Offengelegte Ports": {
   // Interne Port 5432-Zuordnung "5432/tcp" hinzufügen: {},
   "8080/tcp": {}
  },S
  ...
 },

"PortBindings":{
  // Internen Port und externen Port 15432 hinzufügen
  "5432/tcp":[
   {
    "HostIp":"",
    "HostPort":"15432"
   }
  ],
  "8080/tcp":[
   {
    "HostIp":"",
    "HostPort":"28080"
   }
  ]
 },

Methode 2: Iptables-Portweiterleitung

Das Prinzip der Netzwerkportzuordnung von Docker besteht darin, die Portweiterleitung über Iptables zu erreichen. Basierend auf diesem Prinzip können wir Iptables direkt verwenden, um den Port an die Zielcontainer-IP weiterzuleiten. Die Portweiterleitung kann mit dem folgenden Befehl erreicht werden. Diese Methode basiert auf Iptables-Regeln. In einigen Szenarien kann dies zu Iptables-Regelkonflikten führen und den effektiven Start des Containers beeinträchtigen.

# Portzuordnung iptables -t nat -A DOCKER -p tcp --dport <externer Port des Containers> -j DNAT --to-destination <Container-IP>:<interner Port des Containers>
# Brechen Sie die Portzuordnungsregel ab iptables -t nat -D DOCKER -p tcp -d 0/0 --dport <externer Port des Containers> -j DNAT --to-destination <Container-IP>:<interner Port des Containers>

Dies ist das Ende dieses Artikels zum dynamischen Ändern der Container-Port-Zuordnung in Docker. Weitere Informationen zum Ändern der Container-Port-Zuordnung in Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Lösung für mehrere Docker-Container, die nicht die gleiche Portnummer haben
  • So ändern Sie die Portzuordnung eines laufenden Docker-Containers
  • Perfekte Lösung für das Problem, unter Windows 10 nicht auf den Port des Docker-Containers zugreifen zu können
  • Docker stellt über einen Port eine Verbindung zu einem Container her
  • Docker stellt Containern dynamisch Ports zur Verfügung
  • Lösung, wenn der Docker-Container nicht auf den Host-Port zugreifen kann
  • Docker implementiert Container-Portbindung am lokalen Port

<<:  Optimieren der langsamen Abfrage von MySQL-Aggregatstatistikdaten

>>:  Detaillierte Erklärung des JavaScript ES6-Moduls

Artikel empfehlen

Problem beim Wechseln der Registerkarten für die Handschrift von React

Übergeordnete Datei importiere React, { useState ...

Detaillierte Beispiele zur Ajax-Verwendung in js und jQuery

Inhaltsverzeichnis Natives JS So senden Sie eine ...

MySQL 8.0.25 Installations- und Konfigurations-Tutorial unter Linux

Das neueste Tutorial zur Installation von MySQL 8...

Gemeinsame MySQL-Sicherungsbefehle und Shell-Sicherungsskripte

Um mehrere Datenbanken zu sichern, können Sie den...

Anzeigen und Analysieren des MySQL-Ausführungsstatus

Wenn Sie den Eindruck haben, dass ein Problem mit...

MySQL View-Prinzipanalyse

Inhaltsverzeichnis Aktualisierbare Ansichten Leis...

Konfigurationslösung für die MySQL Dual-Master-Architektur (Master-Master)

In Unternehmen hat die hohe Verfügbarkeit von Dat...

Neues CSS3-Layout: ausführliche Flex-Erklärung

Flex-Grundkonzepte Flex-Layout (Flex ist die Abkü...

Installieren Sie mysql5.7.10 manuell unter Ubuntu

Dieses Tutorial beschreibt den Prozess der manuel...

Verwendung von MySQL DDL-Anweisungen

Vorwort Die Sprachklassifikation von SQL umfasst ...

Schritte und Methoden zur Bindung von Domänennamen und IPs in der Alibaba Cloud

1 Rufen Sie die Alibaba Cloud-Konsole auf, suchen...