Detaillierte Erklärung des Unterschieds zwischen Docker-Compose-Ports und Expose

Detaillierte Erklärung des Unterschieds zwischen Docker-Compose-Ports und Expose

Es gibt zwei Möglichkeiten, Container-Ports in Docker-Compose verfügbar zu machen: Ports und Expose.

Häfen

Ports stellt den Container-Port jedem beliebigen Port oder angegebenen Port des Hosts zur Verfügung. Verwendung:

Häfen:
 
- "80:80" # Binden Sie den Port 80 des Containers an den Port 80 des Hosts - "9000:8080" # Binden Sie den Port 8080 des Containers an den Port 9000 des Hosts - "443" # Binden Sie den Port 443 des Containers an einen beliebigen Port auf dem Host. Die gebundene Host-Portnummer wird beim Start des Containers zufällig zugewiesen

Durch die Verwendung von Ports wird der Port dem Host zugänglich gemacht, unabhängig davon, ob der Host-Port angegeben ist oder nicht.

Einige Netzwerkanwendungen können im Container ausgeführt werden. Um diese Anwendungen für die Außenwelt zugänglich zu machen, können Sie die Portzuordnung mit den Parametern -P (Großbuchstaben) oder -p (Kleinbuchstaben) angeben.

(1) Wenn das Flag -P verwendet wird, ordnet Docker dem im Container geöffneten Netzwerkport zufällig einen Port zwischen 49000 und 49900 zu.

Mithilfe von Docker PS können Sie sehen, dass Port 49155 des lokalen Hosts dem Port 5000 des Containers zugeordnet ist. Greifen Sie jetzt auf Port 49155 des lokalen Computers zu, um auf die von der Webanwendung im Container bereitgestellte Schnittstelle zuzugreifen.

$ sudo docker run -d -P training/webapp python app.py
 
$ sudo docker ps -l
 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
 
bc533791f3f5 training/webapp:latest python app.py vor 5 Sekunden Up 2 Sekunden 0.0.0.0:49155->5000/tcp nostalgic_morse

In ähnlicher Weise können Sie den Befehl „Docker Logs“ verwenden, um Anwendungsinformationen anzuzeigen.

$ sudo docker logs -f nostalgic_morse
 
* Läuft auf http://0.0.0.0:5000/
 
10.0.2.2 - - [23/Mai/2014 20:16:31] "GET / HTTP/1.1" 200 -
 
10.0.2.2 - - [23. Mai 2014 20:16:31] "GET /favicon.ico HTTP/1.1" 404 - 

(2) Mit -p (Kleinbuchstabe) können die IP und der Port angegeben werden, die zugeordnet werden sollen. An einen angegebenen Port kann jedoch nur ein Container gebunden werden. Die unterstützten Formate sind hostPort:containerPort, ip:hostPort:containerPort, ip::containerPort.

exponieren

Stellen Sie den Container dem Container zur Verfügung, der mit dem aktuellen Container verknüpft ist. Verwendung:

exponieren:
- "3000"
- "8000"

Die obigen Anweisungen stellen die Ports 3000 und 8000 des aktuellen Containers für den mit diesem Container verknüpften Container bereit.

Der Unterschied zu Ports besteht darin, dass „Expose“ den Port nicht dem Host zugänglich macht.

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:
  • Detailliertes Tutorial zur Docker-Compose-Bereitstellung und Konfiguration von Jenkins
  • Docker erstellt ein benutzerdefiniertes Netzwerk, um eine feste Container-IP-Adresse zu erhalten
  • So verwenden Sie Docker-Compose zum Erstellen eines ELK-Clusters
  • Detaillierte Installation und Verwendung von Docker-Compose
  • Erläuterung der Docker Compose-Netzwerkeinstellungen
  • So führen Sie MySQL mit Docker-Compose aus
  • Zwei einfachste Möglichkeiten zur Installation von Docker-Compose
  • Lösung für das Timeout-Problem bei der Installation von Docker-Compose mit PIP

<<:  Ausnahmefehler beim Packen von Webpack-Dateien

>>:  Detaillierte Erläuterung der geplanten MySQL-Aufgaben (Ereignisereignisse)

Artikel empfehlen

JS implementiert die Benutzerregistrierungsschnittstellenfunktion

In diesem Artikelbeispiel wird der spezifische JS...

Zusammenfassung des CSS-Zählers und des Inhalts

Die Inhaltseigenschaft wurde bereits in CSS 2.1 e...

Das WeChat-Applet implementiert eine einfache Taschenrechnerfunktion

WeChat-Applet: Einfacher Rechner. Zu Ihrer Inform...

Implementierung der Nginx-Arbeitsprozessschleife

Nach dem Start initialisiert der Worker-Prozess z...

JavaScript zur Implementierung eines einziehbaren sekundären Menüs

Der spezifische Code zur Implementierung des einz...

12 Javascript-Tabellensteuerelemente (DataGrid) sind aussortiert

Wenn die DataSource-Eigenschaft eines DataGrid-Ste...

Spezifische Verwendung von CSS-Inhaltsattributen

Das Inhaltsattribut wird im Allgemeinen in den Ps...

MySQL-Export ganzer oder einzelner Tabellendaten

Exportieren einer einzelnen Tabelle mysqldump -u ...

Detaillierte Erklärung der Fallstricke beim Mischen von npm und cnpm

Inhaltsverzeichnis Ursache Grund Einführung in NP...