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

Verbesserung der Wirkung von Hyperlinks im Webdesign und in der Produktion

Hyperlinks ermöglichen es Benutzern, sofort von ei...

MySQL bedingte Abfrage und/oder Verwendung und Priorität Beispielanalyse

Dieser Artikel veranschaulicht anhand von Beispie...

So fügen Sie Codebeispiele für die Vim-Implementierung in Power Shell hinzu

1. Gehen Sie zur offiziellen Website von Vim, um ...

js, um einen einfachen Bild-Drag-Effekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

Nativer JS-Musikplayer

In diesem Artikelbeispiel wird der spezifische JS...

Verwenden von js, um den Effekt eines Karussells zu erzielen

Lassen Sie uns heute darüber sprechen, wie Sie mi...

Eine kurze Diskussion zur MySQL-Select-Optimierungslösung

Inhaltsverzeichnis Beispiele aus dem wirklichen L...

So installieren Sie Element UI und verwenden Vektorgrafiken in vue3.0

Hier konzentrieren wir uns nur auf die Installati...

Teilen Sie JS vier lustige Hacker-Hintergrundeffektcodes

Inhaltsverzeichnis Beispiel 1 Beispiel 2 Beispiel...

So implementieren Sie einen reibungslosen Neustart von Nginx

1. Hintergrund Während des Serverentwicklungsproz...

Verwenden Sie die mail()-Funktion von PHP zum Senden von E-Mails

Senden von E-Mails mit der Mail-Funktion von PHP ...