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 “root” o con “sudo”permiso cada vez. Cada vez que intenté ejecutar Docker como usuario no root o sin sudo permiso, me sale el siguiente error:

                      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.40/version: dial unix /var/run/docker.sock: connect: permission denied
                    

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

                      $ docker version
                    

Y me sale este mensaje de error:

                      Client: Docker Engine - Community
Version: 19.03.8
API version: 1.40
Go version: go1.12.17
Git commit: afacb8b7f0
Built: Wed Mar 11 01:25:46 2020
OS/Arch: linux/amd64
Experimental: false

                      
                        
                          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.40/version: dial unix /var/run/docker.sock: connect: permission denied
                        
                      
                    

Pero cuando ejecuto el mismo comando con sudo permiso;

                      $ sudo docker version
                    

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

                      Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        afacb8b7f0
 Built:             Wed Mar 11 01:25:46 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       afacb8b7f0
  Built:            Wed Mar 11 01:24:19 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
                    

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. Desde eso El 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.

Ejecute 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 “estibador” con el siguiente comando:

                      $ sudo groupadd docker
                    

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

                      $ sudo usermod -aG docker $USER

                    

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

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

                      $ newgrp docker
                    

De ahora en adelante, el usuario normal (no root) puede usar Docker sin sudo permisos

Déjame ejecutar los siguientes comandos como usuario normal:

                      $ docker version
                    
                      $ docker run hello-world
                    

Salida de muestra:

¿Ver? Ahora puedo ejecutar esos dos comandos de Docker sin sudo permiso.

Por si acaso, ya ejecutó algunos comandos de Docker con ‘sudo’ antes de agregar su usuario al grupo de Docker, probablemente verá un error como el que se muestra a continuación.

                      WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied

                    

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

                      $ sudo chown "$USER":"$USER" /home/"$USER"/.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.

Recurso:

¡Gracias por pasar!

Ayúdanos a ayudarte:

¡¡Que tenga un buen día!!

Related Posts