Quiero inspeccionar una imagen acoplada creada por otra persona con un punto de entrada y un cmd especificado, por ejemplo:
ENTRYPOINT ["/usr/sbin/apache2ctl"]
CMD ["-D", "FOREGROUND"]
Actualmente hago:
docker run --interactive --tty --entrypoint=/bin/bash $IMAGE --login
¿Hay alguna forma de anular CMD para que esté vacío (para que no tenga que usar "--login")?
-i
después$IMAGE
?Ver: https://docs.docker.com/engine/reference/run/#overriding-dockerfile-image-defaults
Porción relevante:
CMD (Comando u Opciones predeterminados) Recupere el COMANDO opcional en la línea de comandos de Docker:
Este comando es opcional porque la persona que creó la IMAGEN ya puede haber proporcionado un COMANDO predeterminado utilizando Dockerfile CMD. Como operador (la persona que ejecuta un contenedor desde la imagen), puede anular esa CMD simplemente especificando un nuevo COMANDO.
Si la imagen también especifica un PUNTO DE ENTRADA, entonces el CMD o el COMANDO se agregan como argumentos al PUNTO DE ENTRADA.
Entonces, para hacer lo que desea, solo necesita especificar un cmd y anular el uso
/bin/bash
. No del todo "vacío", pero hace el trabajo al 99%.fuente
--login
a-l
supongo que su solución ya es tan bueno como se pone.1 ? Ssl 0:00 /usr/bin/geth echo setting up db
Para cualquier persona que venga aquí para anular el punto de entrada Y el comando para pasar otro comando, por ejemplo, ejecutar bash en lugar del script de punto de entrada y luego ejecutar algún otro comando con parámetros (no estaba claro para mí en otras respuestas):
-c 'npm link ...'
es un parámetro para,/bin/sh
así que aquí puede pasar cualquier comando que desee ejecutar en el contenedor./bin/sh
es para imágenes alpinas,/bin/bash
muy probablemente para otras imágenes.fuente
'...'
use comillas dobles"..."
/bin/sh
pero la suya podría no ser ese el caso.