Heim >Betrieb und Instandhaltung >Docker >Was ist der Unterschied zwischen Einstiegspunkt und cmd unter Docker?
Der Unterschied zwischen „entrypoint“ und „cmd“ unter Docker ist: 1. Der CMD-Befehl führt eine ausführbare Datei aus und stellt Parameter für ENTRYPOINT bereit. 2. Der ENTRYPOINT-Befehl selbst kann auch Parameter enthalten und geändert werden Parameter werden nicht abgedeckt.
Der Unterschied zwischen Einstiegspunkt und cmd unter Docker ist:
1 >
CMD stellt einige Befehle und Parameter bereit, wenn der Container ausgeführt wird. Die Verwendung ist wie folgt:CMD [“/bin/echo”, “this is a echo test ”]und nach dem Build ausführen (vorausgesetzt, das Image heißt ec):
docker run ecgibt Folgendes aus:
this is a echo testNicht Fühlt es sich seltsam an? Wie bei Startup-Elementen kann man sie vorübergehend auf diese Weise verstehen.
Hinweis: Wenn der Befehl
Parameter angibt, werden die Parameter in CMD überschrieben: (Hier erklären, wie zum Beispiel: Die Parameter des Befehls docker run -it ubuntu /bin/bash beziehen sich auf /bin/bash docker run
und sind nur Parameter von Docker, keine Parameter des Containers. -it
docker run ec /bin/bashwird nicht ausgegeben:
this is a echo test, da der CMD-Befehl durch „/bin/bash“ überschrieben wird.
2. ENTRYPOINT-Anweisung
Die wörtliche Bedeutung ist Einstiegspunkt, und seine Funktion ist genau das, was er bedeutet. Dadurch kann Ihr Container wie ein ausführbares Programm funktionieren. Die Containerfunktion verhält sich wie ein ausführbares Programm. Was bedeutet das? Geben Sie mir direkt ein Beispiel: Beispiel 1: Verwenden Sie den folgenden ENTRYPOINT, um das Bild zu erstellen:ENTRYPOINT ["/bin/echo"]Dann wird der Container nach dem Erstellen des Bildes erstellt von Docker Die Funktion ist wie ein /bin/echo-Programm: Zum Beispiel lautet der Name des von mir erstellten Images imageecho, dann kann ich es so verwenden:
docker run -it imageecho “this is a test”Hier wird es Ausgabe „Dies ist ein Test“ Diese Zeichenfolge und der diesem Bild entsprechende Container verhält sich wie ein Echo-Programm. Der von Ihnen hinzugefügte Parameter „Dies ist ein Test“ wird nach ENTRYPOINT hinzugefügt und sieht folgendermaßen aus: /bin/echo „Dies ist ein Test“. Jetzt sollten Sie verstehen, was der Einstiegspunkt bedeutet. Beispiel 2: Sie können das von
ENTRYPOINT ["/bin/cat"]erstellte Bild wie folgt ausführen (vorausgesetzt, es heißt st):
docker run -it st /etc/fstabDas ist äquivalent zu:
Was das ist Befehl funktioniert. Nach der Ausführung wird der Inhalt in /bin/cat /etc/fstab
ausgegeben. /etc/fstab
ENTRYPOINT hat zwei Schreibweisen:
Weg 1:ENTRYPOINT ["executable", "param1", "param2"] (the preferred exec form)Weg 2:
ENTRYPOINT command param1 param2 (shell form)Sie können auch Docker ausführen Verwenden Sie –entrypoint, um den Befehl anzugeben (Sie können jedoch nur die erste Schreibmethode verwenden). Das Folgende ist die Betriebssituation, wenn ich ENTRYPOINT auf ["/bin/sh -c"] setze:
direkt dahinter liegt /bin/bash
Parameter. /bin/sh -c
FROM ubuntu:14.10 ENTRYPOINT ["top", "-b"] CMD ["-c"]Schreiben Sie die Parameter, die möglicherweise geändert werden müssen, in CMD. Dann können Sie Parameter in Docker Run angeben, sodass die Parameter in CMD (hier -c) überschrieben werden, die in ENTRYPOINT jedoch nicht.
Empfohlene verwandte Tutorials:
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Einstiegspunkt und cmd unter Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!