DEV Community

Marcelo Facio Palin
Marcelo Facio Palin

Posted on

Resolvendo o problema do Permission Denied do Docker

Olá, amigos nerds! Você já se deparou com o irritante erro "Permission Denied" ao tentar utilizar o Docker? Bem, se você está aqui, eu aposto que sim. Mas não se preocupe, vamos mandar esse erro para o espaço! 🚀

Cenário do problema:

O Docker está instalado no seu sistema, mas ao executar comandos como "docker run" ou "docker ps", você se depara com a seguinte mensagem de erro:

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

Parece complicado, né? Mas não se preocupe, vou te mostrar a solução! 🧩
Inclusive pode encontrar a solução na documentação oficial: https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user

Aqui está um passo a passo simples e eficaz para resolver esse problema:

Primeiro, vamos verificar se o seu usuário faz parte do grupo "docker". Execute o seguinte comando:

$ grep docker /etc/group

Se o resultado mostrar o seu nome de usuário ao lado de "docker", você já está no grupo! Mas se não, não se desespere, pois temos uma solução!

docker:x:999:seu_usuario
Enter fullscreen mode Exit fullscreen mode

Agora, vamos adicionar o seu usuário ao grupo "docker". Abra o terminal e digite o seguinte comando (substitua "seu_usuario" pelo seu nome de usuário):

$ sudo usermod -aG docker seu_usuario

Se não sabe qual é seu usuário no linux basta digitar:

$ whoami

Parabéns! Você acabou de dar um passo importante para resolver esse enigma!

Após executar o comando anterior, faça logout da sessão atual e faça login novamente para que as alterações entrem em vigor. Como alternativa, você pode executar:

$ newgrp docker

Este comando iniciará uma nova sessão de shell com a associação de grupo atualizada, mas é recomendável fazer logout e login novamente para garantir que as alterações se apliquem a todas as suas sessões de shell atuais e futuras.

Finalmente, verifique se o erro foi resolvido executando o comando "docker ps". Se você não encontrar mais o erro, comemore! 🎉

E aí está, problema resolvido!

Outra solução:

sudo chmod 666 /var/run/docker.sock

Por quê esta não é a melhor solução?

Segundo a documentação https://docs.docker.com/engine/security/#docker-daemon-attack-surface

A execução de contêineres (e aplicativos) com o Docker implica na execução do daemon do Docker. Este daemon requer rootprivilégios, a menos que você opte pelo modo sem raiz e, portanto, esteja ciente de alguns detalhes importantes.

Em primeiro lugar, apenas usuários confiáveis ​​devem ter permissão para controlar seu daemon Docker . Essa é uma consequência direta de alguns recursos poderosos do Docker. Especificamente, o Docker permite que você compartilhe um diretório entre o host do Docker e um contêiner de convidado;

Top comments (0)