¿Cómo usar Docker Exec?

| Última modificación: 25 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

La herramienta Docker Exec se utiliza con la función de ejecutar cualquier comando en un docker que se encuentre en ejecución. Este comando también es de gran utilidad para depurar los contenedores que estén siendo ejecutados, así como otras acciones dentro de estos.

Además, el comando Docker Exec se utiliza para conectarse y obtener una shell (acceso) sobre estos contenedores en ejecución, al tiempo que aprende y entiende mejor lo que sucede en el interior de los mismos.

Este comando de Docker es de gran importancia, debido a que, al desarrollar e implementar contenedores dentro de la plataforma, es bastante frecuente que el usuario deba revisar los contenedores que se ejecutan con el objetivo de inspeccionar su estado actual o depurar un determinado problema. Por esto, Docker Exec permite la ejecución de diferentes programas en los contenedores que ya están siendo ejecutados.

Además, cabe aclarar que si el usuario intenta ejecutar el comando Docker Exec dentro de un contenedor que no esté siendo ejecutado, sino que se encuentre en pausa, el comando fallará con un error y no realizará sus funciones.

Para utilizar este comando de Docker, debes tener en cuenta que puede presentarse una situación en la que la imagen no tenga disponible el comando que el usuario quiere ejecutar, como puede ser la de bash. Por este motivo se recomienda que el cliente conozca y aprenda las imágenes que va a utilizar.

Opciones del comando Docker Exec

Dentro de las opciones del comando Docker Exec se encuentran las siguientes:

  • --detach: esta opción del comando Docker Exec también puede ejecutarse como -d y funciona como un modo separado, es decir, permite la ejecución del comando en un segundo plano. Debes saber que esta opción le pedirá al motor de Docker que se encargue de ejecutar el comando dentro del contenedor, manteniendo su funcionamiento, al mismo tiempo que pasa a otra tarea.
  • --detach-keys: esta opción cumple la labor de anular la secuencia de teclas con el objetivo de separar un contenedor.
  • --env: esta opción también se conoce como -e y se encarga de establecer las variables de entorno. Esto se debe a que los comandos ejecutados con Docker Exec no pueden heredar el entorno en donde se ejecuta el motor del docker, lo que contribuye a la ejecución de los contenedores en completo aislamiento. Además de esto, cabe resaltar que suele acudir a estas variables de entorno con el objetivo de almacenar la información y los datos sensibles.
  • --env-file: esta opción del comando Docker Exec se ejecuta para cumplir la función de realizar una lectura en un archivo de variable de entorno.
  • --interactive: esta opción también se conoce como -i. Hace referencia a la herramienta que permite el mantenimiento de la entrada estándar o STDIN abierta, incluso en los momentos en los que no se encuentre conectada.
  • ---privileged: esta herramienta es la encargada de proporcionar privilegios extendidos al comando Docker Exec.
  • --tty: también se conoce por su abreviatura -t y se utiliza con el objetivo de asignar un pseudo-TTY. La unión de esta opción con -i permite que el usuario tenga una terminal funcional en su totalidad que le facilitará el proceso de ejecución de comandos dentro de su contenedor.
  • --user: esta opción del comando Docker Exec también puede ejecutarse como -u y cumple la función de indicar el nombre de usuario o UID bajo el formato <nombre|uid>[:<grupo|gid>].
  • --workdir: el usuario también puede ejecutarla en el formato -w. Esta opción hace referencia a la herramienta que cumple la labor de funcionar como un directorio de trabajo dentro del contenedor que se encuentra siendo ejecutado. De manera que esta opción de Docker Exec permite que el usuario especifique un directorio de trabajo diferente con el objetivo de ejecutar su comando.

En este artículo has podido aprender qué es el comando Docker Exec, así como cuáles son sus características, opciones y funciones más importantes dentro de la plataforma; ahora, no dudes en dar el siguiente paso y continúa aprendiendo.

Para ello, te recomendamos explorar nuestro Bootcamp DevOps, donde en menos de 6 meses te enseñaremos todo lo necesario para transformarte en un experto en esta rama del sector IT y, así, destacarás frente a tu competencia. ¡Anímate a inscribirte para seguir formándote y convertirte en un profesional!

Xoán Mallón

Senior DevOps Engineer en Zscaler & Coordinador del Bootcamp DevOps & Cloud Computing.

Posts más leídos

¡CONVOCATORIA ABIERTA!

DevOps & Cloud Computing

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado