Ich möchte ein Docker-Image überprüfen, das von einer anderen Person mit einem angegebenen Entypoint und einem angegebenen Cmd erstellt wurde. Beispiel:
ENTRYPOINT ["/usr/sbin/apache2ctl"]
CMD ["-D", "FOREGROUND"]
Derzeit mache ich:
docker run --interactive --tty --entrypoint=/bin/bash $IMAGE --login
Gibt es eine Möglichkeit, CMD zu überschreiben, um leer zu sein (ich muss also nicht "--login" verwenden)?
-i
Nachher$IMAGE
?Siehe: https://docs.docker.com/engine/reference/run/#overriding-dockerfile-image-defaults
Relevanter Teil:
CMD (Standardbefehl oder -optionen) Rufen Sie den optionalen Befehl in der Docker-Befehlszeile auf:
Dieser Befehl ist optional, da die Person, die das BILD erstellt hat, möglicherweise bereits einen Standardbefehl über die Dockerfile-CMD bereitgestellt hat. Als Operator (die Person, die einen Container im Image ausführt) können Sie diese CMD überschreiben, indem Sie einfach einen neuen BEFEHL angeben.
Wenn das Bild auch einen ENTRYPOINT angibt, wird die CMD oder der BEFEHL als Argument an den ENTRYPOINT angehängt.
Um zu tun, was Sie wollen, müssen Sie nur einen Befehl eingeben und ihn mit überschreiben
/bin/bash
. Nicht ganz "leer", aber zu 99% erledigt.quelle
--login
auf-l
Ich denke, Ihre Lösung ist bereits so gut wie es nur geht.1 ? Ssl 0:00 /usr/bin/geth echo setting up db
Für alle, die hierher kommen, um den Befehl entrypoint AND zu überschreiben, um einen anderen Befehl zu übergeben, z. B. bash anstelle des Skripts entrypoint ausführen und dann einen anderen Befehl mit Parametern ausführen (war mir aus anderen Antworten nicht klar):
-c 'npm link ...'
Dieser Parameter gibt an,/bin/sh
dass Sie hier jeden Befehl übergeben können, den Sie im Container ausführen möchten./bin/sh
ist für alpine Bilder,/bin/bash
am wahrscheinlichsten für andere Bilder.quelle
'...'
doppelte Anführungszeichen"..."
/bin/sh
aber deins ist möglicherweise nicht der Fall.