Este tutorial tiene como objetivo mostrarle cómo trabajar con el comando Docker Exec para ejecutar comandos en la ejecución de contenedores.
Uso básico
Trabajar con Docker Exec es muy simple. Comenzamos llamando al comando Docker Exec seguido del nombre o ID del contenedor y el comando para ejecutar.
Por ejemplo, para ejecutar el comando echo en Container Debian, usamos el comando como:
$ Docker ejecutor Debian Echo Hello
El comando genera un shell del contenedor Debian y ejecuta el comando echo. Una salida de ejemplo aparece a continuación:
Para obtener el nombre o una ID de los contenedores en ejecución, use el comando:
$ Docker PS
Opciones de Docker Exec
El comando Docker Exec admite varias opciones para modificar la funcionalidad de los comandos. Admite las siguientes funciones.
Docker Exec SH
En la mayoría de los casos, necesitamos una instancia de shell en el contenedor para ejecutar comandos sin procesar. Para hacer esto, usamos el comando Docker Exec.
$ Docker ejecutor debian -i -t /bin /bash
El comando anterior inicia un shell interactivo. Es bueno asegurarse de que el ejecutable bash exista antes del comando de ejecución.
Si Bash o cualquier Shell que desee usar no está disponible, use SH en el comando a continuación:
$ Docker Exec -it /bin /sh
Como puede ver, tiene una sesión de shell interactiva donde puede ejecutar comandos.
Ejecutar como root
Para ejecutar el comando como root, use la opción -u. La opción requiere un nombre de usuario o UID del usuario. Por ejemplo:
$ Docker Exec -u 0 Debian Whoami
$ root
En el comando anterior, usamos el UID del usuario raíz para ejecutar el comando whoami como root.
Para usar el nombre de usuario en lugar del usuario UID, use el comando:
$ Docker Exec -u Root Debian Whoami
$ root
El comando anterior puede ayudar cuando desee solucionar problemas o realizar tareas que requieren privilegios elevados.
Conclusión
Eso es todo para el comando Docker Exec.
Hemos discutido el uso de Docker Exec para ejecutar comandos en sus contenedores en ejecución y generar una sesión de shell. Finalmente, cubrimos cómo ejecutar comandos como raíz usando nombre de usuario y uid.