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

Cómo ejecutar Docker como usuario no root en Linux

Instalación de Docker en Ubuntu ¡es muy fácil! Cualquiera, incluso los novatos, puede instalarlo en 15 minutos. Después de instalar Docker, noté que no podía realizar la mayoría de las operaciones de Docker como un usuario normal. Tuve que ejecutar Docker como usuario "raíz" o con permiso "sudo" cada vez. Cada vez que intento ejecutar Docker como usuario no root o sin permiso sudo, aparece el siguiente error:

Obtuve el permiso denegado al intentar conectarme al socket del demonio Docker en unix:///var/run/docker.sock:Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version:dial unix /var/run/docker.sock:connect:permiso denegado

Por ejemplo, quería verificar la versión de Docker como usuario normal usando el comando:

$ versión docker

Y recibo este mensaje de error:

Cliente:Docker Engine - CommunityVersion:19.03.8API version:1.40Go version:go1.12.17Git commit:afacb8b7f0Builded:Wed Mar 11 01:25:46 2020OS/Arch:linux/amd64Experimental:falsePermiso obtenido denegado mientras intenta conectarse al socket del demonio Docker en unix:///var/run/docker.sock:Obtenga http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version:marque unix /var/run/ docker.sock:conectar:​​permiso denegado 

Pero cuando ejecuto el mismo comando con permiso sudo;

$ versión sudo docker

Muestra todos los detalles de la versión de Docker actualmente instalada como se muestra en el siguiente resultado.

Cliente:Docker Engine - Versión de la comunidad:19.03.8 Versión de la API:1.40 Versión de Go:go1.12.17 Compromiso de Git:afacb8b7f0 Construido:miércoles 11 de marzo 01:25:46 2020 OS/Arch:linux/amd64 Experimental:falseServer:Docker Engine - Community Engine:Versión:19.03.8 Versión de API:1.40 (versión mínima 1.12) Versión de Go:go1.12.17 Compromiso de Git:afacb8b7f0 Construido:miércoles 11 de marzo 01:24:19 2020 OS/Arch:linux/amd64 Experimental:false containerd:Versión:1.2.13 GitCommit:7ad184331fa3e55e52b890ea95e65ba581ae3429 runc:Versión:1.0.0-rc10 GitCommit:dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init:Versión:0.83:GitCommit 

Después de buscar en la página de documentación de Docker, me di cuenta de que el demonio de Docker se vincula a un socket de Unix en lugar de a un puerto TCP de manera predeterminada. Dado que ese socket Unix es propiedad de la raíz usuario, el demonio de Docker solo se ejecutará como usuario raíz. Por lo tanto, los usuarios normales no pueden ejecutar la mayoría de los comandos de Docker.

Si desea ejecutar Docker como usuario no root en Linux, debe realizar los siguientes pasos. ¡Probé esto en el servidor Ubuntu 18.04 y funcionó bien! También debería funcionar en otras distribuciones de Linux.

Ejecutar Docker como usuario no root en Linux

Para corregir el error de permiso de Docker denegado y usar Docker como usuario no root, cree un grupo llamado "docker" con el siguiente comando:

$ sudo groupadd docker

A continuación, agregue su usuario a la docker grupo:

$ sudo usermod -aG docker $USUARIO

Después de agregar el usuario al grupo docker, cierre la sesión y vuelva a iniciarla para aplicar los cambios.

Alternativamente, ejecute el siguiente comando para aplicar los cambios a los grupos:

$ ventana acoplable newgrp

A partir de ahora, el usuario normal (no root) podrá usar Docker sin permisos de sudo.

Déjame ejecutar los siguientes comandos como usuario normal:

$ versión docker
$ docker ejecutar hola-mundo

Salida de muestra:

¿Ver? Ahora puedo ejecutar ambos comandos de Docker sin el permiso sudo.

Por si acaso, ya ejecutó algunos comandos de Docker con el permiso 'sudo' antes de agregar su usuario al grupo de Docker, probablemente verá un error como el siguiente.

ADVERTENCIA:error al cargar el archivo de configuración:/home/user/.docker/config.json -stat /home/user/.docker/config.json:permiso denegado

El mensaje de error anterior indica que su ~/.docker/ El directorio se creó con permisos incorrectos debido a los comandos 'sudo'. Para solucionar este problema, cambie la propiedad y los permisos de este directorio con los siguientes comandos:

$ sudo chown "$USUARIO":"$USUARIO" /home/"$USUARIO"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R

Cierra la sesión y vuelve a iniciarla para que esto surta efecto.

Si aún no soluciona el problema, es posible que deba eliminar su ~/.docker/ directorio. Se volverá a crear automáticamente, pero perderá todas las configuraciones personalizadas, si las hay.

Espero que esto ayude.


Docker
  1. Cómo verificar la versión de Redhat

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

  3. Cómo ejecutar MySQL en un contenedor Docker

  4. Cómo ejecutar rsyslog como usuario no root en CentOS/RHEL 7

  5. Android - ¿Cómo rootear Samsung S6 usando Linux?

Cómo instalar Docker CE en Linux Mint 20

Cómo cambiar de usuario 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