Cómo usar Docker sin sudo en Ubuntu

Este tutorial te mostraré cómo ingresar el comando docker sin usar sudo comando en la máquina Ubuntu Linux.

Si usa Docker para pruebas y desarrollo en su máquina local, probablemente haya experimentado esos mensajes.

$ docker run hello-world
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get https://%2Fvar%2Frun%2Fdocker.sock/v1.27/containers/json: dial unix /var/run/docker.sock: connect: permission denied

Probablemente evitaría esto usando sudo antes del comando docker o iniciar sesión como root usando su. Pero no tiene que ser asi. Es posible ejecutarlo como usuario normal y hay dos formas. Una es agregar su usuario al grupo de la ventana acoplable y otra es permitirle escribir en el socket Unix utilizado por la ventana acoplable. Vamos a mostrar ambas formas de hacer esto en Ubuntu 18.04 LTS.

1) Agregar usuario al grupo de Docker

Cree un nuevo grupo si no existe. Este comando probablemente fallará ya que el grupo tal vez ya exista, pero ejecutémoslo de todos modos.

sudo groupadd docker

A continuación, debemos agregar el usuario actual al grupo.

sudo gpasswd -a $USER docker

Si no desea agregar un usuario que haya iniciado sesión actualmente, sino otro, cambie $ USER por el nombre de usuario de ese usuario. Tenga en cuenta que el usuario debe tener permiso para usar sudo.

Por último, necesitamos volver a cargar el shell para que se apliquen las nuevas configuraciones de grupo. Para esto, puede reiniciar o puede cerrar la sesión y volver a iniciarla, pero ambos son enfoques nucleares cuando en realidad desea algo más sutil, así que hagamos este comando.

newgrp docker

Ahora estamos listos para ejecutar el programa de prueba de Docker sin sudo

docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete 
Digest: sha256:97ce6fa4b6cdc0790cda65fe7290b74cfebd9fa0c9b8c38e979330d547d22ce1
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

2) listas de ACL

Hay otra forma de hacer esto, y son las listas de ACL.

Aún con la sesión iniciada como usuario sudoer, necesitamos ejecutar este comando

sudo setfacl -m user:bobby:rw /var/run/docker.sock

Por supuesto, cambie bobby por el usuario real que desea usar en la ventana acoplable.

Ahora puede iniciar sesión como este usuario.

su bobby

Ahora podemos usar Docker, para example ingrese este comando

docker ps

Debería enumerar los contenedores si tiene algunos. De lo contrario, al menos no mostrará el error de permiso denegado.

Leer también:

  • Usuario de Linux Agregar comando y todas sus opciones
  • Comando de Linux Groupadd – Agregar nuevos grupos

Eso es todo, dos formas de tener Docker sin sudo. Le ahorrará escribir y hará que el uso de la ventana acoplable sea más rápido. Gracias por leer, y háganos saber en los comentarios si conoce otras opciones.