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?
docker
docker-compose
Carlos andres
fuente
fuente
Respuestas:
Si desea ejecutar Docker como usuario no root, debe agregarlo al grupo de Docker.
Tomado de la documentación oficial de docker: manage-docker-as-a-non-root-user
fuente
sudo systemctl restart docker
docker
grupo esencialmente otorga acceso a la raíz , sin aplicar políticas y auditorías de sudo regulares. Consulte el número 9976 de GitHub para obtener detalles y discusión.Después de una actualización obtuve el permiso denegado. Hacer los pasos de los pasos posteriores a la instalación de 'mkb' no ha cambiado nada porque mi usuario ya estaba en el grupo 'acoplador'; Lo vuelvo a intentar dos veces sin éxito.
Después de una hora de búsqueda, la siguiente solución finalmente funcionó:
La solución vino de Olshansk .
Parece que la actualización ha recreado el socket sin 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:
Si todo esto es bueno, debería ver
root/docker
"noroot/root
".2) Problema con el inicio de sesión gráfico : /superuser/1348196/why-my-linux-account-only-belongs-to-one-group
Puede verificar este segundo problema con este comando:
Si todo está correcto, debería ver el grupo acoplable en la lista. Si no, prueba el comando
si ve entonces el grupo acoplable es por el error.
Soluciones
Si logra obtener una solución alternativa para el inicio de sesión gráfico, esto debería hacer el trabajo:
Pero si no puede manejar este error, una solución no tan mala podría ser esta:
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
)fuente
:ro
final ... tan pronto como agregué que estaba listo para irmefuente
newgrp
comando solicitó una contraseña y no aceptó mi contraseña de usuario. En cambiosu - $USER
trabajó para evitar cerrar sesión / iniciar sesión.docker
grupo/var/run/docker.sock
fuente
Resuelvo este error con el comando:
fuente
Siempre puedes probar el
Manage Docker as a non-root user
párrafo en https://docs.docker.com/install/linux/linux-postinstall/ docs.Después de hacer esto también si el problema persiste, puede ejecutar el siguiente comando para resolverlo:
fuente
chmod 666
) es un desastre de seguridad ... Esto nunca debe recomendarse.Esto soluciona mi problema.
fuente
Para solucionar ese problema, busqué dónde está instalado mi docker y docker-compose. En mi caso,
docker
se instaló en/usr/bin/docker
ydocker-compose
se instaló en/usr/local/bin/docker-compose
ruta. Entonces, escribo esto en mi terminal:A la ventana acoplable:
Para
docker-compose
:Ahora no necesito escribir en mi ventana acoplable la palabra
sudo
/ ************************************************* ********************** /
ERRATA:
La mejor solución para 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!
fuente
docker
grupo, como dicen los documentos.sudo groupadd docker
,sudo usermod -aG docker $USER
.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
sudo usermod -aG docker $USER
, tuve que comentara
en
/etc/pam.d/lightdm
antes de reiniciar , por la ventana acoplable grupo para realmente tener efecto.error: https://bugs.launchpad.net/lightdm/+bug/1781418 y aquí: https://bugzilla.redhat.com/show_bug.cgi?id=1581495
fuente
usa este comando
luego reinicie su computadora, esto funcionó para mí.
fuente
En serio chicos. No agregue Docker en sus grupos ni modifique el zócalo posix (sin un SELinux de endurecimiento), es una forma simple de hacer una raíz privesc. Simplemente agregue un alias en su .bashrc, es más simple y seguro como: alias dc = 'sudo docker'.
fuente
puede seguir estos pasos y esto funcionará para usted:
sudo groupadd docker
sudo usermod -aG docker $USER
groups
newgrp docker
sudo chown root:docker /var/run/docker.sock
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
Después de esa prueba puedes correr
docker ps -a
fuente
chown
el archivo docker.sock.Después de instalar docker, crear el grupo 'docker' y agregarle un usuario, edite el archivo de la unidad de servicio de docker:
Agregue dos líneas en la sección [Servicio]:
Guarde el archivo (Ctrl-X, y, Enter)
Ejecute y habilite el servicio Docker:
fuente
Después de la instalación de Docker en Centos. Mientras se ejecuta debajo del comando, obtuve el siguiente error.
Cambiar grupo y permiso para docker.socket
Verifique usando el siguiente comando acoplable
fuente
sudo chmod 666 /var/run/docker.sock
esto me ayudó mientras recibía un error incluso para iniciar sesión en la ventana acoplable Pero ahora esto funciona completamente bien en mi sistema.
fuente