Ejecutar Docker sin ser root
Docker sin sudo
Pasos para habilitar docker para que ciertos usuarios puedan usar los comandos de docker sin necesidad de ser root.
Debido a que Docker accede a ciertos recursos privilegiados del sistema (red, memoria, reglas de iptables, rutas de directorios restringidas, etc), sólo se permite al usuario root ejecutar los comandos docker.
Permitir el acceso a Docker a usuarios no root
Por defecto, Docker sólo permite al usuario root ejecutar contenedores. La solución para que otro usuario pueda pueda ejecutar contenedores, es incluir el usuario al que quieras permitir la ejecución al grupo docker, es un grupo que se crea automáticamente en la instalación de Docker.
Vamos a suponer que quieres que el usuario desarrollador ejecutar contenedores Docker.
Nuevo usuario con acceso a docker
Si el usuario no existe, deberás crearlo, para ello ejecuta el comando:
useradd -s /bin/bash -m -G docker desarrollador
Creamos el usuario, asignándole por defecto una shell con bash, se crea su directorio home y se le incluye en el grupo secundario docker.
Usuarios existentes con permiso a docker
Si el usuario ya existe simplemente debemos incluir ese usuario en el grupo de docker para permitirle la ejecución de contenedores docker:
usermod -aG docker desarrollador
Comprobación de los permisos para ejecución de docker
Ahora simplemente debemos iniciar una nueva sesión con el usuario al que hemos habilitado el acceso a docker, en nuestro caso desarrollador y verificar la configuración.
docker run hello-world
Y veremos que efectivamente funciona: