Motivo:el mensaje de error significa que el usuario actual no puede acceder al motor acoplable porque no tiene suficientes permisos para acceder al socket de UNIX para comunicarse con el motor.
Corrección rápida:
-
Ejecute el comando como root usando sudo.
sudo docker ps
-
Cambie los permisos de /var/run/docker.sock para el usuario actual.
sudo chown $USER /var/run/docker.sock
Precaución :Ejecutando sudo chmod 777 /var/run/docker.sock resolverá su problema pero abrirá el socket de la ventana acoplable para todos, lo cual es una vulnerabilidad de seguridad como lo señaló @AaylaSecura. Por lo tanto, no debe usarse, excepto con fines de prueba en el sistema local.
Solución permanente:
Agrega el usuario actual al grupo docker.
sudo usermod -a -G docker $USER
Nota:debe cerrar la sesión y volver a iniciarla para que los cambios surtan efecto.
Consulte este blog para obtener más información sobre cómo administrar Docker como usuario no root.
Para aquellos nuevos en el shell, el comando:
$ sudo usermod -aG docker $USER
necesita tener $USER
definido en su shell. Esto suele estar allí de forma predeterminada, pero es posible que deba establecer el valor en su identificación de inicio de sesión en algunos shells.
Cambiar los grupos de un usuario no cambia los inicios de sesión, terminales y shells existentes que un usuario tiene abiertos. Para evitar realizar un inicio de sesión nuevamente, simplemente puede ejecutar:
$ newgrp docker
para obtener acceso a ese grupo en su shell actual.
Una vez que haya hecho esto, el usuario tiene acceso de raíz en el servidor, así que solo haga esto para los usuarios en los que se confía con acceso sudo sin restricciones.