Inicie Bash Terminal en New Docker Container
Los contenedores Docker son la unidad estándar para empaquetar todas las dependencias de nuestras aplicaciones, lo que nos permite ejecutarlas fácilmente en cualquier entorno. Los contenedores se han vuelto muy populares recientemente, y la mayoría de los desarrolladores ahora dependen en gran medida de los contenedores para administrar sus aplicaciones y dependencias.
Docker nos brinda múltiples formas de acceder a una instancia de shell iniciando un terminal bash dentro de un contenedor docker. Esto es particularmente útil cuando se ejecutan algunos comandos dentro del contenedor docker.
Además, esto también puede deberse a razones de depuración, o tal vez desee verificar si todo está configurado correctamente. Este artículo explora diferentes métodos que podemos usar para ejecutar contenedores y contenedores que no se están ejecutando.
Utilice el shell interactivo de Bash
Bash es un procesador de comandos común con los sistemas Linux que permite a los usuarios escribir comandos que provocan acciones. Si tuvo alguna interacción con los sistemas basados en Unix o WSL, puede interactuar con varios comandos a través de bash.
Del mismo modo, también podemos acceder directamente a la terminal de Linux dentro de un contenedor docker y ejecutar comandos como lo haríamos con el bash normal de Linux. Una ventaja de este método es que podemos hacer esto con un contenedor que no se está ejecutando, a diferencia de otros comandos como el comando docker exec
.
Como se muestra a continuación, usaremos la imagen oficial rabbitmq
del registro de la ventana Docker para crear un contenedor Docker y acceder directamente al bash dentro del contenedor. Puede hacer esto con cualquier otro comando; quiere asegurarse de tener la imagen de antemano.
docker pull rabbitmq
docker images
Ahora que tenemos las imágenes, podemos crear el contenedor Docker de forma interactiva. Esto significa que podemos ejecutar comandos dentro del contenedor docker mientras aún se está ejecutando, como se muestra a continuación.
$ docker run -it rabbitmq bash
Producción :
root@f418a3286aae:/#
Como puede ver, ahora estamos dentro del contenedor docker y hemos logrado ejecutar con éxito bash dentro del nuevo contenedor. Ahora podemos ejecutar nuestros comandos como si estuviéramos trabajando con la terminal real.
Por ejemplo, podemos enumerar los archivos y directorios dentro de este contenedor, como se muestra a continuación.
root@f418a3286aae:/# ls
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt plugins proc root run sbin srv sys tmp usr var
root@f418a3286aae:/#
Usa el comando docker exec
Alternativamente, también podemos usar el comando docker exec
para ejecutar bash dentro de un nuevo contenedor docker. Sin embargo, a diferencia del método anterior, este comando requiere que ya tengamos el contenedor ejecutándose; de lo contrario, el comando no funcionará.
Use el comando docker ps -a
para confirmar que nuestro contenedor se está ejecutando. Si el contenedor que desea usar no se está ejecutando, es posible que desee iniciarlo con el comando docker start
seguido de la identificación o el nombre del contenedor.
docker ps
Usaremos el comando docker exec
junto con la etiqueta -it
. El comando exec
nos permite ejecutar un comando en el contenedor en ejecución, mientras que la etiqueta -it
nos permite abrir el contenedor de forma interactiva.
Podemos ejecutar eso como se muestra a continuación.
$ docker exec -it f418a3286aae bash
Producción :
root@f418a3286aae:/# ls
bin boot dev etc home isaac lib lib32 lib64 libx32 media mnt opt plugins proc root run sbin srv sys tmp tonyloi usr var
Ahora que hemos lanzado con éxito bash dentro de este contenedor docker, podemos ejecutar varios comandos desde dentro del contenedor. Alternativamente, podemos usar sh
para contenedores que no tienen bash.
Este también es un comando que abrirá un indicador de shell básico donde podemos ejecutar nuestros comandos dentro del contenedor.
$ docker exec -it f418a3286aae sh
Producción :
# ls
bin boot dev etc home isaac isaactonyloi lib lib32 lib64 libx32 media mnt opt plugins proc root run sbin srv sys tmp tonyloi usr var
Utilice el comando docker attach
También podemos lanzar bash dentro de un contenedor docker en ejecución usando el comando docker added
. Esto nos permite adjuntar los flujos de error, salida y entrada estándar local a un contenedor en ejecución usando la ID del contenedor.
Luego podemos ejecutar varios comandos, aceptar entradas y depurar el contenedor especificado. Necesitamos tener un contenedor en ejecución para adjuntar nuestros flujos de salida, entrada y error.
Podemos implementar esto usando el nombre o la identificación del contenedor como se muestra a continuación.
Código:
$ docker container attach f418a3286aae
Producción :
root@f418a3286aae:/# ls
bin boot dev etc home isaac isaactonyloi lib lib32 lib64 libx32 media mnt opt plugins proc root run sbin srv sys tmp tonyloi usr var
root@f418a3286aae:/#
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn