Docker EXEC en contenedor como root

Docker EXEC en contenedor como root
Docker es una poderosa herramienta de contenedores que permite a los usuarios crear aplicaciones aisladas y independientes. Los contenedores de Docker transportan el sistema operativo base, las aplicaciones y todos los paquetes requeridos. Por lo tanto, en algunos casos, necesitamos tener acceso al shell de sistemas, ejecutar comandos y realizar configuraciones personalizadas. Afortunadamente, Docker nos proporciona la funcionalidad para ejecutar comandos en la ejecución de contenedores.

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.

  • -I - esta opción mantiene el stdin.
  • -t - genera un pseudo tty
  • -u - especifica el nombre de usuario o uid.
  • -W - Directorio de trabajo
  • -P - Asigna privilegios extendidos al comando.
  • -D - se ejecuta en modo separado.
  • -e - Establece variables de entorno.

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.