Einführung
Einstiegspunkt und CMD sind Anweisungen in der Dockerfile, die den Prozess in einem Docker-Image definieren. Sie können einen verwenden oder beide kombinieren, je nachdem, wie Sie Ihren Container ausführen möchten.
Ein Unterschied besteht darin, dass im Gegensatz zu CMD
, können Sie den ENTRYPOINT
nicht überschreiben Befehl einfach durch Hinzufügen neuer Befehlszeilenparameter. Um ENTRYPOINT zu überschreiben, müssen Sie docker run
ändern Befehl nach einer bestimmten Syntax.
In diesem Tutorial erfahren Sie, wie Sie ENTRYPOINT mit dem Docker-Run-Befehl überschreiben.

Voraussetzungen
- Zugriff auf eine Befehlszeile
- Ein Benutzer mit sudo Privilegien
- Eine laufende Docker-Instanz
- Ein vorhandenes Docker-Image
ENTRYPOINT mit docker run überschreiben
Um zu veranschaulichen, wie dieser Befehl überschrieben wird, führen wir einen Container aus, der die Nachricht Hello World
zurückgibt durch die Kombination von ENTRYPOINT und CMD in der Dockerfile.
In der Dockerfile ist der ENTRYPOINT
Befehl definiert die ausführbare Datei, während CMD
setzt den Standardparameter.
FROM ubuntu
MAINTAINER sofija
RUN apt-get update
ENTRYPOINT [“echo”, “Hello”]
CMD [“World”]
Wenn Sie aus dieser Datei ein Image erstellen und es zum Ausführen eines Docker-Containers verwenden, zeigt die Ausgabe Folgendes an:

Sie können die Standard-CMD einfach überschreiben, indem Sie den gewünschten Parameter zum docker run
hinzufügen Befehl:
sudo docker run [container_name] [new_parameter]
Im folgenden Beispiel haben wir den CMD-Parameter World
geändert , indem Sie Sofija
hinzufügen zum Befehl. Als Ergebnis zeigt die Ausgabe Hello Sofija
an .

Möglicherweise möchten Sie jedoch die ausführbare Standarddatei überschreiben und beispielsweise eine Shell in einem Container ausführen. In diesem Fall müssen Sie den --entrypoint
verwenden kennzeichnen und den Container mit der folgenden Syntax ausführen:
sudo docker run --entrypoint [new_command] [docker_image] [optional:value]
Um die standardmäßige Echonachricht in unserem Beispiel zu überschreiben und den Container interaktiv auszuführen, verwenden wir den Befehl:
sudo docker run -it --entrypoint /bin/bash [docker_image]
Die Ausgabe zeigt uns, dass wir uns jetzt im Container befinden.
