In Dockerfile können run, cmd und entrypoint zum Ausführen von Befehlen verwendet werden. Hier sind ihre Hauptverwendungen:
Ausführen von Befehlen im Shell- und Exec-FormatWir können die von „run“, „cmd“ und „entrypoint“ auszuführenden Befehle in den folgenden zwei Formaten angeben:
Es wird empfohlen, für cmd und Entrypoint das Exec-Format zu verwenden, da die Anweisungen besser lesbar und leichter verständlich sind, während für „run“ beide Formate akzeptabel sind. Fallstricke beim Exec-FormatDer Inhalt der Docker-Datei ist wie folgt: Umgebungsname Morris Einstiegspunkt ["echo", "$name"] Diese Schreibweise gibt nur „$name“ aus und ersetzt die Variable nicht, da nur der Echo-Befehl und nicht die Shell ausgeführt wird. Dies bedeutet, dass wir echo nicht in der Shell ausführen, sondern einfach echo ausführen, sodass die Variable nicht ersetzt wird. Um es in eine ausführbare Shell umzuwandeln, müssen Sie es in die folgende Form umschreiben Umgebungsname Morris Einstiegspunkt ["/bin/bash", "-c", "echo $name"] Befehl ausführenDer Befehl „Ausführen“ wird häufig zum Installieren von Anwendungen und Softwarepaketen verwendet. „run“ führt den Befehl über dem aktuellen Bild aus und erstellt eine neue Bildebene. Dockerfile enthält oft mehrere Ausführungsanweisungen. Hier ist ein Beispiel: Führen Sie „yum update && yum install -y \“ aus. bzr \ Lebenslauf \ git \ Quecksilber \ Subversion yum update und yum install werden in einem Run-Befehl ausgeführt, wodurch sichergestellt wird, dass jedes Mal das neueste Paket installiert wird. Wenn „yum install“ in einem separaten Lauf ausgeführt wird, wird die von „yum update“ erstellte Image-Ebene verwendet, die möglicherweise vor langer Zeit zwischengespeichert wurde. cmd-BefehlMit der cmd-Direktive kann der Benutzer den vom Container ausgeführten Standardbefehl angeben. Dieser Befehl wird ausgeführt, wenn der Container gestartet wird und mit „docker run“ kein anderer Befehl angegeben ist. Hier ist ein Beispiel: cmd echo "Hallo Welt" Beim Ausführen des Containers
Wenn jedoch danach ein Befehl hinzugefügt wird, etwa
Wenn mehrere cmd-Befehle vorhanden sind, wird nur der letzte cmd-Befehl ausgeführt. Entrypoint-BefehlDas Exec-Format des Einstiegspunkts wird verwendet, um den Befehl und seine Parameter festzulegen, die beim Starten des Containers ausgeführt werden sollen. Zusätzliche Parameter können über den Befehl cmd oder Befehlszeilenparameter bereitgestellt werden. Im Gegensatz zum cmd-Befehl werden immer die Parameter im Entrypoint verwendet. Hier ist ein Beispiel: Einstiegspunkt ["Echo", "Hallo"] Wenn der Container über
Wenn es mit
Schauen wir uns ein weiteres Beispiel an. Das Dockerfile ist: Einstiegspunkt ["Echo", "Hallo"] cmd ["Welt"] Wenn der Container über
Wenn Sie es mit
Die Parameter im Einstiegspunkt werden immer verwendet, während die zusätzlichen Parameter von cmd beim Starten des Containers dynamisch ersetzt werden können. Wenn mehrere Einstiegspunktbefehle vorhanden sind, wird entsprechend nur der letzte Einstiegspunktbefehl ausgeführt. Zusammenfassen
Dies ist das Ende dieses Artikels über die Unterschiede zwischen run/cmd/entrypoint in Docker. Weitere relevante Inhalte zu Docker run/cmd/entrypoint finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung der drei Phasen der Entwicklung eines visuellen Designers
>>: Detaillierte Erklärung des MySQL-Datenbank-LIKE-Operators in Python
MySQL-Einstellungscode für grüne Version und Fehl...
Bevor wir jQuery verwenden, um den Ein- und Ausbl...
Installieren Sie mysql5.7 unter Win. Zu Ihrer Inf...
Inhaltsverzeichnis 1. Index-Grundlagen 1. Arten v...
MySQL sauber deinstallieren. Persönlich getestet,...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort: Während der Projektentwicklung stießen w...
Bei der Verwendung von MySQL führen viele Entwick...
Inhaltsverzeichnis 1. MySQL-Replikationsprozess 2...
Ich werde nicht näher darauf eingehen, wie wichti...
veranschaulichen: Es gibt zwei Haupttypen von Ngi...
Inhaltsverzeichnis Komponentendesign Definieren d...
1. Laden Sie die virtuelle Maschine Version 15.5....
RDF und OWL sind zwei wichtige semantische Webtec...
Die Syntax für einen äußeren Join lautet wie folg...