Heim > Artikel > Betrieb und Instandhaltung > Was bedeutet „expose' in Docker?
Im Docker bedeutet „Expose“ das Markieren von Informationen und ist eine Möglichkeit, Dokumente auszudrücken. Mit „Expose“ können Entwickler schnell erkennen, welche Dienste in der Docker-Datei nicht direkt geöffnet werden können, was die Verwendung für das Betriebs- und Wartungspersonal erleichtert Wenn Sie einen Container erstellen, wissen Sie, welche Ports geöffnet werden müssen. Wenn kein verfügbarer Port vorhanden ist, können Dienste zwischen Containern auch aufeinander zugreifen.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-Version 19.03, Dell G3-Computer.
Das Exposé in der Docker-Datei ist eine Tag-Information. Sie können den Port nicht direkt öffnen, was für das Betriebs- und Wartungspersonal praktisch ist, um zu wissen, welche Ports geöffnet werden müssen, wenn der Container verwendet wird. Wenn Sie docker run -itd -P xxx:xxx verwenden, ordnet der Großbuchstabe -P den Port zu, der mit EXPOSE in der Dockerfile-Datei definiert wurde, und es ist nicht erforderlich, -p: dieses Formular manuell auszuführen.
EXPOSE ist nur eine Möglichkeit des Dokumentausdrucks. Entwickler können schnell erkennen, welche Dienste von Image geöffnet werden. Wenn kein EXPOSE-Port vorhanden ist, können auch Dienste zwischen Containern aufeinander zugreifen.
Der Unterschied zwischen Expose und Publish (run -p) in Docker
Der Haupteintrag hier ist ein kleiner Zweifel, den ich kürzlich bei der Verwendung von Docker entdeckt habe. Zusammenfassend lautet dies:
Was sind in Docker die Unterschiede und Verbindungen zwischen der exponierten Schnittstelle „docker run -p“ beim Starten der Befehlszeile und der exponierten Schnittstelle in der Docker-Datei?
Die spezifische Beschreibung lautet wie folgt:
Zum Beispiel mache ich zuerst einen 8080-Port in der Docker-Datei verfügbar.
STELLE 8080 bereit.
Dann erstelle ich dieses Image für die spätere Verwendung Dieses Bildbeispiel und einen Port veröffentlichen
docker build -t myimage - Dockerfile
Hier kommt eine Frage, die ich erwähnt habe. Da ich den Expose-Port 8080 in der Docker-Datei deklariert habe, warum muss ich den Port (-p) trotzdem veröffentlichen? Was ist der Unterschied und die Verbindung zwischen den beiden? Kann ich in diesem Fall direkt
rrree?
Nach dem Testen (der Testprozess entfällt, können interessierte Freunde es selbst testen. Tatsächlich gibt es wesentliche Unterschiede zwischen den beiden und es gibt auch einen gewissen Zusammenhang.
Ich werde diese hier auflisten. Vier Kombinationen
A, weder Expose noch -p in der Docker-Datei ausführen
B, nur den Port in der Docker-Datei verfügbar machen
C und Expose in der Docker-Datei gleichzeitig ausführen und -p ausführen
D, nur ausführen - p
1------Für Fall A kann der in diesem Container gestartete Dienst weder vom Host-Host und externen Netzwerk noch vom Link-Container aufgerufen werden und kann nur innerhalb dieses Containers verwendet werden
2-- ------In Situation B kann die Außenwelt von Docker (Host und andere Hosts) nicht auf den in diesem Container gestarteten Dienst zugreifen, aber Container mit anderen Links können über Container
Link
3- darauf zugreifen. -------Für Fall C kann die Außenwelt von Docker auf den gestarteten Cotnainer und auch über den Link-Container zugreifen
4---------Für Fall D, in Tatsache ist, dass Docker eine spezielle implizite Konvertierung durchführt, die Fall C entspricht. Die Außenwelt und der Container des Links können darauf zugreifen (dies gilt für diesen Fall, der Grund dafür ist, dass Docker dies glaubt, da Sie dies tun müssen). Öffne den Port
Wenn es um die Außenwelt geht, können andere Container definitiv darauf zugreifen, also führt Docker automatisch Expose aus
Empfohlenes Lernen: „
Docker-Video-TutorialDas obige ist der detaillierte Inhalt vonWas bedeutet „expose' in Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!