GNU/Linux >> Tutoriales Linux >  >> Linux

Inicio de un shell en el contenedor Docker Alpine

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.


[email protected]:~$ docker run -it --rm alpine /bin/ash
(inside container) / # 

Opciones utilizadas anteriormente:

  • /bin/ash es Ash (Almquist Shell) proporcionado por BusyBox
  • --rm Elimina automáticamente el contenedor cuando sale (docker run --help )
  • -i Modo interactivo (Mantener STDIN abierto incluso si no está conectado)
  • -t Asignar 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


Linux
  1. Poder (Shell) para la gente

  2. Una introducción a Docker

  3. Cómo salir de un contenedor Docker

  4. Ejecución de OpenSSH en un contenedor Docker de Alpine

  5. Ejecute un script de shell desde el comando docker-compose, dentro del contenedor

Docker Image vs Container:las principales diferencias

¿Qué es el Shell en Linux?

Una introducción al registro de contenedores de Quay

Cómo verificar si el demonio Docker o un contenedor se está ejecutando

Cómo inspeccionar el contenido de una imagen Docker sin iniciar un contenedor

Cómo usar SSH en un contenedor Docker