Ejecución de contenedores Docker como usuario no root

De forma predeterminada, los contenedores de Docker se ejecutan como usuarios raíz. Ahora, si está ejecutando aplicaciones dentro de Docker Containers, tiene acceso a todos los privilegios de root. Esto representa una gran amenaza para la seguridad cuando implementa aplicaciones a gran escala dentro de Docker Containers. Porque si de alguna manera su aplicación es pirateada por usuarios externos, otras aplicaciones que se ejecutan dentro de los Contenedores también serían un gran riesgo. Además, si su contenedor Docker es parte de una red, toda la red corre el riesgo de ser pirateada. Para evitar esto, debe asegurarse de ejecutar Docker Containers como usuarios no root.

En este artículo, analizaremos dos formas diferentes mediante las cuales puede crear y agregar usuarios no root dentro de Docker Containers.

Método 1: Especificar en Dockerfile

Puede agregar usuarios usando la opción -u junto con useradd . A continuación, puede utilizar la instrucción USER para cambiar de usuario. Considere el Dockerfile a continuación.

FROM ubuntu
RUN useradd -u 1234 my-user
USER my-user

El Dockerfile anterior extrae la imagen base de Ubuntu y crea un usuario con ID 1234 y el nombre my-user. Luego cambia al nuevo usuario usando la instrucción USER.

Ahora, para construir la imagen, use el comando Docker Build.

sudo docker build -t nonroot-demo .

Specify in Dockerfile

Use el comando Docker Run para ejecutar el contenedor.

sudo docker run -it nonroot-demo bash

nonroot docker demo

Puede ver que el usuario se ha cambiado al usuario no root que creamos en el Dockerfile .

Método 2: agregando un usuario al grupo de Docker

Para crear un grupo Docker, puede usar el siguiente comando.

sudo groupadd docker

Si ya existe un grupo docker, obtendrá el siguiente resultado: 

adding a user to the Docker group

Ahora, para crear un usuario no root y agregarlo al grupo docker, puede usar el siguiente comando.

sudo useradd -G docker <user-name>

Después de eso, puede asignar una contraseña al usuario usando el siguiente comando.

sudo passwd user

assign a password

Para cambiar el grupo principal de un usuario, use este comando.

sudo usermod -aG docker <non-root user>

Reinicie el servicio Docker.

Publicación traducida automáticamente

Artículo escrito por iamrj846 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *