GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Ejecute Docker como usuario no root

Los contenedores de Docker se ejecutan de forma predeterminada con el privilegio de raíz, al igual que la aplicación que se ejecuta dentro del contenedor. Esta es otra preocupación importante desde la perspectiva de la seguridad porque los piratas informáticos pueden obtener acceso de root al host de Docker pirateando la aplicación que se ejecuta dentro del contenedor.

Método 1:Agregar usuario al grupo de Docker

1. Para ejecutar Docker como usuario no root, debe agregar su usuario al grupo docker.

2. Cree un grupo de ventanas acoplables si no hay uno:

$ sudo groupadd docker

3. Agregue su usuario al grupo docker:

$ sudo usermod -aG docker [non-root user]

4. Cierre la sesión y vuelva a iniciarla para que se vuelva a evaluar la pertenencia a su grupo.

Método 2:uso de Dockerfile (instrucción de USUARIO)

Docker proporciona una solución simple pero poderosa para cambiar el privilegio del contenedor a un usuario que no sea root y, por lo tanto, frustrar el acceso de root malicioso al host de Docker. Este cambio en el usuario no raíz se puede lograr mediante -u o –usuario opción del subcomando docker run o USER instrucción en el Dockerfile.

1. Edite el Dockerfile que crea un usuario con privilegios no raíz y modifique el usuario raíz predeterminado al usuario con privilegios no raíz recién creado, como se muestra aquí:

##########################################
# Dockerfile to change from root to 
# non-root privilege
###########################################
# Base image is CentOS 7
FROM Centos:7
# Add a new user "john" with user id 8877
RUN useradd -u 8877 john
# Change to non-root privilege
USER john

2. Continúe con la creación de la imagen de Docker utilizando el subcomando "docker build", como se muestra aquí:

$ sudo docker build -t nonrootimage .

3. Finalmente, verifiquemos el usuario actual de nuestro contenedor usando el comando id en un subcomando de ejecución de docker:

$ sudo docker run --rm nonrootimage id
uid=8877(john) gid=8877(john) groups=8877(john)

Evidentemente, el usuario, el grupo y los grupos del contenedor ahora se cambiaron a un usuario no root.


Docker
  1. Cómo ejecutar Nginx en un contenedor Docker:una guía paso a paso

  2. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  3. ¿Es una buena práctica ejecutar un daemon con una cuenta de usuario no root?

  4. Cómo ejecutar MySQL en un contenedor Docker

  5. ¿Cómo agregar usuarios al contenedor Docker?

Cómo ejecutar Docker como usuario no root en Linux

Cómo ejecutar una aplicación .NET en Docker

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker

Cómo ejecutar contenedores Docker

Ejecutar Docker Container en segundo plano (modo separado)