docker - run - Cómo arreglar la ventana acoplable: se obtuvo permiso denegado
docker tag example (8)
Instalé Docker en mi máquina donde tengo Ubuntu OS. Después de que instalé docker, cuando ejecuto
sudo docker run hello-world
Todo está bien, pero quiero ocultar la palabra
sudo
para acortar el comando.
Si escribo el comando sin la palabra
sudo
docker run hello-world
Eso muestra lo siguiente:
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.See ''docker run --help''.
Sucedió lo mismo cuando trato de hacer
docker-compose up
¿Cómo puedo resolver esto?
-
Agregar usuario actual al grupo
docker
sudo usermod -aG docker $USER
-
Cambie los permisos del zócalo del acoplador para poder conectarse al demonio del
/var/run/docker.sock
sudo chmod 666 /var/run/docker.sock
- agregar grupo acoplable
$ sudo groupadd docker
- agregue su usuario actual al grupo acoplable
$ sudo usermod -aG docker $USER
3. Cambiar sesión al grupo acoplable
$newgrp - docker
- correr
$docker run hello-world
Después de una actualización obtuve el permiso denegado. Hacer los pasos de los pasos posteriores a la instalación ''mkb'' no ha cambiado nada porque mi usuario ya estaba en el grupo ''docker''; Lo vuelvo a intentar dos veces sin éxito.
Después de una hora de búsqueda, la siguiente solución finalmente funcionó:
sudo chmod 666 /var/run/docker.sock
La solución vino de Olshansk .
Parece que la actualización ha recreado el socket sin el permiso suficiente para el grupo ''docker''.
Problemas: este agujero de seguridad abierto de chmod duro y después de cada reinicio, este error comienza una y otra vez y debe volver a ejecutar el comando anterior cada vez. Quiero una solución de una vez por todas. Para eso tienes dos problemas:
1) Problema con SystemD : el socket se creará solo con el propietario ''root'' y el grupo ''root''. Puede verificar este primer problema con este comando:
ls -l /lib/systemd/system/docker.socket
Si todo esto es bueno, debería ver ''root / docker'' no ''root / root''.
2) Problema con el inicio de sesión gráfico : https://superuser.com/questions/1348196/why-my-linux-account-only-belongs-to-one-group Puede verificar este segundo problema con este comando:
groups
Si todo está correcto, debería ver el grupo acoplable en la lista. Si no prueba el comando
sudo su $USER -c groups
si ve entonces el grupo de acopladores es por el error.
Soluciones: si logra obtener una solución para el inicio de sesión gráfico, esto debería hacer el trabajo:
sudo chgrp docker /lib/systemd/system/docker.socket
sudo chmod g+w /lib/systemd/system/docker.socket
Pero si no puede manejar este error, una solución no tan mala podría ser esta:
sudo chgrp $USER /lib/systemd/system/docker.socket
sudo chmod g+w /lib/systemd/system/docker.socket
Esto funciona porque usted está en un entorno gráfico y probablemente sea el único usuario en su computadora. En ambos casos, necesita reiniciar (o un sudo chmod 666 /var/run/docker.sock )
Para solucionar ese problema, busqué dónde está instalado mi docker y docker-compose.
En mi caso,
docker
se instaló en
/usr/bin/docker
y
docker-compose
se instaló en
/usr/local/bin/docker-compose
path.
Luego, escribo esto en mi terminal:
A la ventana acoplable:
sudo chmod +x /usr/bin/docker
Para
docker-compose
:
sudo chmod +x /usr/local/bin/docker-compose
Ahora no necesito escribir en mi ventana acoplable de comandos la palabra
sudo
/ ************************************************* ********************** /
ERRATA:
La mejor solución de este problema fue comentada por @mkasberg. Cito el comentario:
That might work, you might run into issues down the road. Also, it''s a security vulnerability. You''d be better off just adding yourself to the docker group, as the docs say. sudo groupadd docker, sudo usermod -aG docker $USER.
Docs:
https://docs.docker.com/install/linux/linux-postinstall/
¡Muchas gracias!
Si desea ejecutar Docker como usuario no root, debe agregarlo al grupo de Docker.
-
Crea el grupo de acopladores.
$ sudo groupadd docker
-
Agregue su usuario al grupo de acopladores.
$ sudo usermod -aG docker $USER
-
Cerrar sesión e iniciar sesión nuevamente y ejecutar.
$ docker run hello-world
Tomado de la documentación oficial de la ventana acoplable: docs.docker.com/install/linux/linux-postinstall/…
funciona como un encanto para este error
sudo chmod 666 /var/run/docker.sock
lightdm y kwallet se envían con un error que parece no pasar los grupos suplementarios al iniciar sesión.
Para resolver esto, también, además de
sudo usermod -aG docker $USER
, tuve que comentar
auth optional pam_kwallet.so
auth optional pam_kwallet5.so
a
#auth optional pam_kwallet.so
#auth optional pam_kwallet5.so
en
/etc/pam.d/lightdm
antes de reiniciar
, para que el docker-group tenga efecto.
error: https://bugs.launchpad.net/lightdm/+bug/1781418 y aquí: https://bugzilla.redhat.com/show_bug.cgi?id=1581495
usa este comando
sudo usermod -aG docker $USER
luego reinicie su computadora, esto funcionó para mí.