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.