Detaillierte Erläuterung der grundlegenden Docker-Netzwerkkonfiguration

Detaillierte Erläuterung der grundlegenden Docker-Netzwerkkonfiguration

Externer Zugriff

Ports nach dem Zufallsprinzip zuordnen

Mit dem Flag -P ordnet Docker dem im Container verfügbaren Netzwerkport zufällig einen Port zwischen 49000 und 49900 zu. docker run -d -P training/webapp python app.py
docker ps -l # Den zuletzt erstellten Container anzeigen docker logs -f web # Anwendungsinformationen anzeigen

Alle Schnittstellenadressen zuordnen

docker run -d -p 5000:5000 Training/Webanwendung Python app.py

Wird dem angegebenen Port der angegebenen Adresse zugeordnet

docker run -d -p 127.0.0.1:5000:5000 Training/Webanwendung Python app.py

Karte zu jedem Port der angegebenen Adresse

docker run -d -p 127.0.0.1::5000 training/webapp python app.py

UDP-Port angeben

docker run -d -p 127.0.0.1:5000:5000/udp-Training/Webanwendung Python app.py

Anzeigen der zugeordneten Portkonfiguration

Docker-Port Web 5000

Erstellen Sie ein neues Docker-Netzwerk

Docker-Netzwerk erstellen -d Bridge My-Net

Führen Sie den Container aus, um eine Verbindung mit dem neu erstellten my-net-Netzwerk herzustellen

docker run -it --rm --name busybox1 --network my-net busybox sh
docker run -it --rm --name busybox2 --network my-net busybox sh

Containerinformationen anzeigen

Docker-Container ls
Ping-Test im Container, um zu sehen, ob Container verbunden sind

Docker Compose wird für die Verbindung mehrerer Container empfohlen

DNS konfigurieren Nachdem die Host-DNS-Informationen aktualisiert wurden, wird die DNS-Konfiguration aller Docker-Container sofort über /etc/resolv.conf aktualisiert

DNS für alle Container konfigurieren

vim /etc/docker/daemon.json Inhalt hinzufügen {
 'dns':[
  „114.114.114.114“,
  „8.8.8.8“
 ]
}

docker run -it --rm ubuntu:17.10 cat /etc/resolv.conf

Container-Vernetzung

Das Verbindungssystem des Containers ist neben der Portzuordnung eine weitere Möglichkeit zur Interaktion mit Anwendungen im Container.

Es erstellt einen Tunnel zwischen dem Quell- und dem Empfangscontainer, und der Empfangscontainer kann die vom Quellcontainer angegebenen Informationen sehen.

Benutzerdefinierter Containername

Das Verbindungssystem wird basierend auf dem Containernamen ausgeführt. Sie müssen daher einen relativ einfachen und leicht zu unterscheidenden Containernamen anpassen.

Für die benutzerdefinierte Benennung wird der Parameter --name verwendet, der bereits in früheren Artikeln verwendet wurde:

docker run -d -p --name db mysql

Containernamen müssen eindeutig sein.

Wenn Sie beim Ausführen von Docker Run den Parameter --rm hinzufügen, wird der Container sofort nach der Beendigung gelöscht. Er kann jedoch nicht zusammen mit dem Parameter -d verwendet werden.

Container-Vernetzung

Verwenden Sie den Parameter --link, um eine sichere Verbindung zwischen Containern für die Interaktion herzustellen.

Hier ist ein Beispiel:

Erstellen Sie zunächst einen Datenbankcontainer:

docker run -d --name db training/postgres

Erstellen Sie dann den Webcontainer:

docker run -d -P --name web --link db:db training/webapp python app.py

An diesem Punkt sind der Datenbankcontainer und der Webcontainer miteinander verbunden.

--link-Parameter: --link Name:Alias, Name ist der Name des zu verbindenden Containers und Alias ​​ist der Alias ​​dieser Verbindung.

Sie können Docker PS verwenden, um Containerinformationen anzuzeigen, wobei die Namensspalte den Status der Verbindung anzeigen kann.

Docker erstellt einen sicheren Tunnel zwischen zwei miteinander verbundenen Containern. Dadurch entfällt die Notwendigkeit, deren Ports dem Host zuzuordnen, und eine Port-Freigabe wird verhindert.

Docker stellt Verbindungsinformationen auf zwei Arten bereit:

  • Umgebungsvariablen
  • Aktualisieren Sie die Datei /etc/hosts

Verwenden Sie den Befehl env, um jetzt die Umgebungsvariablen des Webcontainers anzuzeigen:

docker run --rm --name web2 --link db:db training/webapp-Umgebung …

Die Umgebungsvariablen, die mit DB_ beginnen, werden vom Webcontainer für die Verbindung mit dem DB-Container verwendet und erhalten als Präfix einen Verbindungsalias in Großbuchstaben.

Zusätzlich zu den Umgebungsvariablen fügt Docker auch die Hostinformationen zur Datei /etc/hosts des übergeordneten Containers hinzu. Der Webcontainer verwendet seine eigene ID als Standard-Hostnamen und der DB-Container verwendet db als Hostnamen.

Beispielsweise können Sie bei mehreren Web-zu-DB-Containern mehrere untergeordnete Container mit dem übergeordneten Container verknüpfen.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So konfigurieren Sie DNS im Standard-Bridge-Netzwerk von Docker
  • So konfigurieren Sie ein Docker-Netzwerk mithilfe des Bridge-Netzwerks
  • Docker Punkt-zu-Punkt-Container-Netzwerkkonfiguration
  • CentOS: Ändern der Docker-Netzwerkkonfigurationsmethode zum Teilen
  • Docker Grundlagen: Netzwerkkonfiguration ausführlich erklärt
  • Detaillierte Erläuterung der manuellen Docker-Konfiguration von Containernetzwerkbeispielen
  • Detaillierte Erläuterung der Konfiguration des VLAN-Netzwerkmodus in Docker

<<:  JavaScript implementiert die Generierung eines 4-stelligen zufälligen Bestätigungscodes

>>:  Detaillierte Erklärung zum Kompilieren und Installieren von MySQL 5.6 auf CentOS und zum Installieren mehrerer MySQL-Instanzen

Artikel empfehlen

Ein zeitaufwändiger Fehlerbehebungsprozess für einen Docker-Fehler

Inhaltsverzeichnis Herkunft Umweltinformationen F...

So erstellen Sie eine LNMP-Umgebung unter Ubuntu 20.04

Einfache Beschreibung Da es zuvor mit Centos7 ers...

CSS zum Erzielen von Text auf dem Hintergrundbild

Wirkung: <div Klasse="imgs"> <...

Erfahrungsaustausch über die Priorität des Ladens von CSS-Stilen

Während der Projektentwicklung bin ich gestern auf...

So setzen Sie das Zabbix-Passwort zurück (ein Schritt)

Problembeschreibung Da wir uns nicht lange bei Za...

Zusammenfassung der speicherbezogenen Parameter von MySQL 8.0

Theoretisch entspricht der von MySQL verwendete S...