La opción Dockerfile USER es una herramienta que permite definir el usuario que se encargará de ejecutar las acciones en la imagen a partir de un momento determinado. De manera opcional, este elemento permite establecer también el grupo al que pertenecerá el usuario (conocido como GID).
Dockerfile USER tiene una gran importancia, debido a que en el proceso de creación y ensamblaje de una imagen en Docker influye en otras opciones o instrucciones. Por ejemplo, RUN, encargado de la ejecución del comando de imagen, puesto que puede tener ciertos cambios en su funcionamiento debido al tipo de usuario y grupo que esté manejando la plataforma. Cabe resaltar que, de manera ideal, siempre que el cliente pueda, se le recomienda utilizar usuarios diferentes al root.
Características de Dockerfile USER
Dentro de las características de la opción Dockerfile USER, se encuentra que, una vez se aplica, se tendrá en cuenta en la totalidad de instrucciones siguientes, por lo que es de gran importancia su configuración en el sistema. Así, por ejemplo, mientras un contenedor en Docker se encuentra en su proceso de ejecución, la herramienta de USER tiene la capacidad de ser implementada en tipos de opciones como lo son CMD y ENTRYPOINT, encargados de los argumentos y comandos estándar requeridos para el arranque de un contenedor en user docker , respectivamente.
Además de esto, la plataforma de docker-user se encarga de asignar a los usuarios y los grupos pertenecientes a una misma imagen un nombre de usuario (UID) y grupo de usuario (GID) de tipo no determinista, por lo que sería asignado el siguiente UID y GID sin tener en cuenta las reconstrucciones de la imagen. Por esta razón, la instrucción Dockerfile USER permite asignar un nombre y grupo de usuario específico y explícito que facilite el proceso de creación de imágenes y ejecución de contenedores.
En este sentido, cabe resaltar que, en los casos donde un usuario no tiene un grupo principal asignado, la imagen de docker user o las instrucciones posteriores serán ejecutadas con el grupo root. Al igual que el usuario, root limita el funcionamiento eficiente de algunas opciones de la plataforma. En el sistema operativo de Windows, el usuario debe crearse en primera instancia si este no pertenece a una cuenta integrada. Esta acción puede realizarse usando el comando net user
dentro del archivo de instrucciones Dockerfile.
Además de esto, se debe aclarar que, cuando el cliente especifica un determinado grupo para el usuario, este solo pertenecerá a ese grupo que se indique, por lo que el sistema no tendrá en cuenta cualquier otra participación o membresía de grupo que se hubiese configurado con anterioridad.
Recomendaciones para el uso de Dockerfile USER
🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴
Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semanaUna de las características de la opción Dockerfile USER es que su cambio constante de un lado a otro podría afectar al proceso de reducción de capas y aumentar la complejidad de las labores de la plataforma, por lo que es recomendable hacer un solo cambio hacia un usuario no root y tratar de no modificarlo a menos que sea indispensable.
Otra de las recomendaciones para la implementación de la instrucción Dockerfile USER es no utilizarlo o instalarlo en la opción de SUDO
, debido a que esta herramienta cuenta con un TTY o pseudoterminal que resulta impredecible para el sistema, así como un comportamiento relacionado con el reenvío de señales que podría ocasionar inconvenientes en los procesos de la plataforma. En caso de que el usuario necesite de manera fundamental una función como SUDO, puede usar otras herramientas, como gosu
. Este permite realizar acciones como arrancar el daemon como root, pero llevar a cabo su ejecución como usuario no root.
¿Cuál es el siguiente paso?
En este artículo has podido aprender qué es la opción Dockerfile USER, cuáles son sus características principales y algunas recomendaciones para su implementación en la plataforma de contenedores. Ahora, es momento de dar el siguiente paso y continuar formándote en torno a esta y otra gran variedad de herramientas con nuestro DevOps & Cloud Computing Full Stack Bootcamp. En menos de 6 meses, te convertiremos en un experto del mundo tecnológico para que domines todo lo imprescindible y destaques frente a tus competidores. ¡Anímate a inscribirte en nuestro bootcamp y sigue con tu proceso de formación!