Grundlegende Netzwerkkonfiguration Obwohl Docker basierend auf Images „mehrere“ Container öffnen kann und die einzelnen Container sich nicht gegenseitig beeinflussen, bedeutet dies nicht, dass die Container vollständig voneinander getrennt sind. Beim Ausführen eines Images stellt Docker eine Netzwerkverbindungsfunktion bereit, die Container-Ports dem Host-Host und Container-Ports einem anderen Container zuordnet, sodass Container mit dem Host-Host und untereinander kommunizieren können. ### Von außen auf Container-Anwendungen zugreifen Wenn Sie beim Starten eines Containers die entsprechenden Parameter nicht angeben, kann auf Netzwerkanwendungen und -dienste im Container nicht über das Netzwerk außerhalb des Containers zugegriffen werden. Wenn Sie im Container einige Netzwerkanwendungen ausführen, auf die extern zugegriffen werden muss, können Sie die Portzuordnung mit dem Parameter -P oder -p angeben. Wenn Sie das Flag -P verwenden, ordnet Docker einem offenen Netzwerkport innerhalb des Containers zufällig einen Port zwischen 49000 und 49900 zu: docker run -d -p [Spiegel-ID oder TAG] Verwenden Sie -p (Kleinbuchstaben), um den zuzuordnenden Port anzugeben. An einen angegebenen Port kann nur ein Container gebunden werden. Die unterstützten Formate sind ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort. Alle Schnittstellenadressen zuordnen Verwenden Sie hostPort:containerPort, um den lokalen Port 5000 dem Port 5000 des Containers zuzuordnen: docker run -d -p 5000:5000 Training/Webanwendung Python app.py Standardmäßig sind alle Adressen an allen lokalen Schnittstellen gebunden. Um mehrere Ports zu binden, verwenden Sie das Flag -p mehrmals: docker run -d -p 5000:5000 -p 3000:80 Training/Webanwendung Python app.py Wird dem angegebenen Port der angegebenen Adresse zugeordnet Sie können das Format „ip:hostPort:containerPort“ verwenden, um eine Zuordnung mit einer bestimmten Adresse anzugeben, beispielsweise der Localhost-Adresse 127.0.0.1: docker run -d -p 127.0.0.1:5000:5000 Training/Webanwendung Python app.py Es kann sich auch um die IP-Adresse anderer interner Container handeln. Karte zu jedem Port der angegebenen Adresse Verwenden Sie ip::containerPort, um einen beliebigen Port von localhost an Port 5000 des Containers zu binden. Der lokale Host weist automatisch einen Port zu: docker run -d -p 127.0.0.1::5000 training/webapp python app.py Sie können auch das UDP-Flag verwenden, um den UDP-Port anzugeben: docker run -d -p 127.0.0.1:5000:5000/udp-Training/Webanwendung Python app.py Anzeigen der zugeordneten Portkonfiguration Verwenden Sie den Docker-Port, um die aktuell zugeordnete Portkonfiguration und die gebundene Adresse anzuzeigen: Docker-Port nostalgic_morse 5000 Der Container verfügt über ein eigenes internes Netzwerk und eine eigene IP-Adresse (verwenden Sie Docker Inspect + Container-ID, um alle Variablenwerte abzurufen). Container-Vernetzung ermöglicht Kommunikation zwischen Containern 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. Benutzerdefinierte Containerbenennung Das Verknüpfungssystem wird basierend auf dem Containernamen implementiert. Daher müssen Sie zunächst einen einprägsamen Containernamen anpassen. Obwohl das System beim Erstellen eines Containers standardmäßig einen Namen zuweist, bietet die benutzerdefinierte Benennung von Containern zwei Vorteile:
Verwenden Sie das Flag --name, um dem Container einen benutzerdefinierten Namen zu geben: docker run -d -p --name Webtraining/Webanwendung Python app.py Verwenden Sie Docker PS, um den Namen anzuzeigen, oder verwenden Sie Docker Inspect, um den Namen des Containers anzuzeigen: docker inspect -f "{{name}}" [Spiegel-ID] Der Name des Containers ist eindeutig. Wenn Sie einen Container bereits web genannt haben, müssen Sie den Container zunächst mit dem Befehl docker rm löschen, bevor Sie einen neuen Container mit dem Namen web erstellen können. Container-Vernetzung Verwenden Sie den Parameter --link, um Containern eine sichere Interaktion untereinander zu ermöglichen. Das Format des Parameters --link ist --link Name:Alias, wobei Name der Name des zu verknüpfenden Containers und Alias der Alias dieser Verbindung ist. Lassen Sie uns beispielsweise einen neuen Datenbankcontainer erstellen: docker run -d --name db training/postgres Erstellen Sie dann einen Webcontainer und verbinden Sie ihn mit dem DB-Container: docker run -d -p --name web --link db:db training/webapp python app.py Zu diesem Zeitpunkt können der Datenbankcontainer und der Webcontainer miteinander kommunizieren. Sie können Docker PS verwenden, um die Verbindungen des Containers anzuzeigen. Durch die Verwendung des Parameters --link kann Docker über einen sicheren Tunnel zwischen zwei Containern kommunizieren, ohne Ports zu öffnen. Dadurch wird vermieden, dass die Ports dem externen Netzwerk ausgesetzt werden. Verbindungsinformationen öffentlicher Container anzeigen Umgebungsvariablen: Verwenden Sie den Befehl env, um die Umgebungsvariablen des Containers anzuzeigen docker run --name web --link db:db training/webapp umgebung /etc/hosts-Datei: Wenn Sie den Link-Parameter verwenden, fügt Docker die Host-Informationen zur /etc/hosts-Datei des übergeordneten Containers hinzu. Unten finden Sie die Hosts-Datei des übergeordneten Containers web docker run -t -i --link db:db training/webapp /bin/bash root@aed84ee21bd3:/opt/webapp# cat /etc/hosts 127.17.0.7 aed84ee21bde ... 172.17.0.5db Die erste ist die Hostinformation des Webcontainers, der standardmäßig seine eigene ID als Hostnamen verwendet. Das zweite ist die IP und der Hostname des DB-Containers. 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 gehen Sie mit verstümmelten Zeichen in der MySQL-Datenbank um
>>: Verwenden Sie die mail()-Funktion von PHP zum Senden von E-Mails
Nach dem Upgrade von MySQL auf Version 5.7 wurde ...
Der Standardtabellenname ist „base_data“ und der ...
clear:both wird zum清除浮動Das ist der Eindruck, den ...
Grundsätzlich verfügen alle E-Commerce-Projekte ü...
<br />Vorheriger Artikel: Webdesign-Tutorial...
1. Einführung in Prometheus Prometheus ist eine O...
Bei der Verwendung von Nginx als Reverse-Proxy fü...
In diesem Artikel wird beschrieben, wie Sie das P...
Beim Freigeben eines Projekts müssen Sie häufig d...
Dieser Hinweis ist ein Installationstutorial. Er ...
Bereitstellen des Projekts in der Testumgebung de...
Über Semantik Die Semantik ist die Lehre von der ...
Inhaltsverzeichnis Vorwort Einen Stapel und zwei ...
1. Befehlseinführung Der Befehl contab (Cron-Tabe...
Text 1) Laden Sie das Ubuntu-Image herunter Docke...