Documentação: Correção de erro de permissão no Docker (Ubuntu / VPS)

📌 Problema

Ao executar:

docker ps

Erro retornado:

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

🧠 Causa raiz

O Docker usa um socket Unix:

/var/run/docker.sock

Por padrão, esse socket pertence a:

  • Usuário: root
  • Grupo: docker

Ou seja:
👉 Apenas usuários do grupo docker podem executar comandos sem sudo


✅ Solução padrão (correta)

1. Adicionar usuário ao grupo docker

sudo usermod -aG docker $USER

2. Atualizar sessão (IMPORTANTE ⚠️)

O erro mais comum é esse passo ser ignorado.

Opção A — Logout/login (recomendado)

exit

Depois reconecte via SSH.


Opção B — Aplicar na sessão atual

newgrp docker

3. Testar

docker ps

🔍 Verificação

Conferir grupos do usuário

groups

Saída esperada:

ubuntu docker

Conferir permissões do socket

ls -l /var/run/docker.sock

Esperado:

srw-rw---- 1 root docker ...

🛠️ Correções avançadas (se não funcionar)

🔹 Ajustar permissões manualmente

sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock

🔹 Reiniciar Docker

sudo systemctl restart docker

🔹 Validar serviço Docker

sudo systemctl status docker

🔹 Teste com sudo (diagnóstico)

sudo docker ps

✔️ Se funcionar → problema é apenas permissão
❌ Se não funcionar → problema no serviço Docker


⚠️ Boas práticas (ambiente profissional)

✔️ Evite usar sudo docker

  • Melhor para automações
  • Evita problemas com scripts e cron

✔️ Use aliases para produtividade

Adicione no ~/.bashrc:

alias dps="docker ps"
alias dpa="docker ps -a"
alias dlogs="docker logs -f"
alias dexec="docker exec -it"

Depois:

source ~/.bashrc

✔️ Segurança

Adicionar usuário ao grupo docker = acesso root indireto ⚠️

👉 Em produção:

  • Use apenas usuários confiáveis
  • Evite expor Docker API externamente

🚀 Automação (Script pronto)

Script de correção + otimização:

#!/bin/bashecho "🔧 Corrigindo permissões do Docker..."# Adiciona usuário ao grupo docker
sudo usermod -aG docker $USER# Ajusta permissões do socket
sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock# Reinicia serviço
sudo systemctl restart docker# Aliases úteis
echo "⚙️ Configurando aliases..."cat <<EOL >> ~/.bashrc# Docker aliases
alias dps="docker ps"
alias dpa="docker ps -a"
alias dlogs="docker logs -f"
alias dexec="docker exec -it"
EOLecho "✅ Finalizado!"
echo "⚠️ Faça logout/login ou rode: newgrp docker"

🧪 Checklist final

  • Usuário no grupo docker
  • Sessão reiniciada ou newgrp docker
  • Socket com grupo docker
  • Docker rodando (systemctl status docker)
  • docker ps funcionando sem sudo

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


Rolar para cima