Por lo general, una imagen de Alpine Linux no contiene bash , En su lugar, puede usar /bin/ash , /bin/sh , ash o solo sh .
/papelera/cenizas
docker run -it --rm alpine /bin/ash
/bin/sh
docker run -it --rm alpine /bin/sh
ceniza
docker run -it --rm alpine ash
sh
docker run -it --rm alpine sh
Espero que esta información te ayude.
example@unixlinux.online:~$ docker run -it --rm alpine /bin/ash
(inside container) / #
Opciones utilizadas anteriormente:
/bin/ashes Ash (Almquist Shell) proporcionado por BusyBox--rmElimina automáticamente el contenedor cuando sale (docker run --help)-iModo interactivo (Mantener STDIN abierto incluso si no está conectado)-tAsignar un pseudo-TTY
Hoy en día, las imágenes de Alpine se iniciarán directamente en /bin/sh por defecto, sin tener que especificar un shell para ejecutar:
$ sudo docker run -it --rm alpine
/ # echo $0
/bin/sh
Esto es desde el alpine Los archivos Docker de imagen ahora contienen un CMD comando, que especifica el shell que se ejecutará cuando se inicie el contenedor:CMD ["/bin/sh"] .
En versiones anteriores de imágenes de Alpine (anteriores a 2017), no se usaba el comando CMD, ya que Docker solía crear una capa adicional para CMD que aumentaba el tamaño de la imagen. Esto es algo que los desarrolladores de imágenes de Alpine querían evitar. En las versiones recientes de Docker (1.10+), CMD ya no ocupa una capa, por lo que se agregó a alpine imágenes Por lo tanto, mientras no se anule CMD, las imágenes recientes de Alpine se iniciarán en /bin/sh .
Como referencia, consulte el siguiente compromiso con los Dockerfiles oficiales de Alpine de Glider Labs:
https://github.com/gliderlabs/docker-alpine/commit/ddc19dd95ceb3584ced58be0b8d7e9169d04c7a3#diff-db3dfdee92c17cf53a96578d4900cb5b