Erro “Permission Denied” no Docker: Guia Completo para Ubuntu e VPS

Resposta Rápida

O erro:

permission denied while trying to connect to the Docker daemon socket

normalmente acontece porque o usuário atual não possui permissão para acessar o socket do Docker (/var/run/docker.sock). Na maioria dos casos, basta adicionar o usuário ao grupo docker, atualizar a sessão e validar as permissões do socket. Em ambientes de produção, também é importante avaliar os impactos de segurança, pois usuários do grupo Docker possuem privilégios equivalentes ao root.


Principais Pontos

  • O Docker utiliza o socket Unix /var/run/docker.sock
  • Usuários fora do grupo docker não conseguem executar comandos sem sudo
  • Adicionar o usuário ao grupo docker resolve a maioria dos casos
  • O grupo docker concede privilégios elevados semelhantes ao root
  • É fundamental validar permissões, serviço e configurações de segurança

Visão Geral

O Docker se tornou uma das ferramentas mais utilizadas para desenvolvimento, hospedagem de aplicações, automação e infraestrutura moderna.

Entretanto, um dos erros mais comuns em servidores Linux, VPS e ambientes cloud continua sendo:

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

Esse problema afeta desde iniciantes até administradores de sistemas experientes e normalmente ocorre após:

  • Instalação recente do Docker
  • Criação de novos usuários
  • Migração de servidores
  • Atualizações do sistema
  • Configuração incorreta de permissões

O Que é o Arquivo docker.sock?

O Docker opera através de um socket Unix localizado em:

/var/run/docker.sock

Esse arquivo funciona como um canal de comunicação entre:

  • Docker CLI
  • Docker Engine (daemon)

Quando você executa:

docker ps

o comando não conversa diretamente com os containers.

Ele envia uma requisição para o daemon Docker através desse socket.


Como verificar o socket

ls -l /var/run/docker.sock

Saída esperada:

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

Significado:

ProprietárioGrupoPermissão
rootdockerleitura/escrita

Causa Raiz do Erro

O usuário atual não possui acesso ao grupo responsável pelo socket Docker.

Verifique:

groups

Exemplo incorreto:

ubuntu

Exemplo correto:

ubuntu docker

Solução Completa

1. Adicionar Usuário ao Grupo Docker

sudo usermod -aG docker $USER

O que esse comando faz?

OpçãoFunção
usermodModifica usuários
-aAdiciona sem remover grupos existentes
-GDefine grupo
dockerGrupo Docker

2. Atualizar a Sessão

Esse é o passo mais ignorado.

Mesmo após adicionar o usuário ao grupo, a sessão atual continua utilizando as permissões antigas.

Método recomendado

exit

Reconecte via SSH.

Método rápido

newgrp docker

3. Testar

docker ps

Se a lista de containers aparecer, o problema foi resolvido.


Como Validar Isso na Prática

Em um servidor Ubuntu limpo:

Cenário inicial

docker ps

Resultado:

permission denied ...

Aplicando correção

sudo usermod -aG docker $USER
newgrp docker
docker ps

Resultado esperado:

CONTAINER ID   IMAGE   STATUS

Tempo médio de correção:

EtapaTempo
Adicionar grupo5 segundos
Atualizar sessão10 segundos
Teste final5 segundos
TotalMenos de 1 minuto

Diagnóstico Avançado

Verificar Serviço Docker

sudo systemctl status docker

Status esperado:

active (running)

Reiniciar Docker

sudo systemctl restart docker

Teste com sudo

sudo docker ps

Resultado

ResultadoDiagnóstico
FuncionaProblema de permissão
Não funcionaProblema no serviço Docker

Correções Avançadas

Ajustar proprietário do socket

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

Ajustar permissões

sudo chmod 660 /var/run/docker.sock

Reiniciar daemon

sudo systemctl restart docker

Docker Rootless: Alternativa Mais Segura em 2026

Uma tendência crescente em ambientes corporativos é utilizar Docker Rootless.

Nesse modelo:

  • Não existe daemon rodando como root
  • Menor superfície de ataque
  • Melhor isolamento

Instalação:

dockerd-rootless-setuptool.sh install

Comparação

RecursoDocker TradicionalRootless
PerformanceExcelenteExcelente
SegurançaMédiaAlta
ComplexidadeBaixaMédia
Recomendado para produçãoSimSim

Impacto de Segurança

Atenção ao Grupo Docker

Poucos administradores percebem isso:

Adicionar um usuário ao grupo Docker equivale praticamente a conceder acesso root.

Exemplo:

Um usuário do grupo Docker pode iniciar containers privilegiados e acessar partes sensíveis do host.

Por isso:

✅ Utilize apenas usuários confiáveis

✅ Audite acessos regularmente

✅ Utilize autenticação SSH segura

✅ Nunca exponha a API Docker publicamente


Consumo de Recursos

A correção em si não gera impacto de desempenho.

Entretanto, após a correção, você pode monitorar:

docker stats

Exemplo:

MétricaContainer Web
CPU2%
RAM350 MB
Rede12 Mbps
Disco1,2 GB

Essas medições ajudam a validar se o ambiente está saudável.


Automação Completa

Script Atualizado para 2026

#!/bin/bash

echo "🔧 Corrigindo permissões do Docker"

sudo usermod -aG docker $USER

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

sudo systemctl restart docker

if ! grep -q "alias dps=" ~/.bashrc; then

cat <<EOF >> ~/.bashrc

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

EOF

fi

echo "✅ Configuração concluída"
echo "⚠️ Execute:"
echo "newgrp docker"

Benefícios da Correção

  • Elimina uso constante de sudo
  • Facilita automações
  • Melhora scripts CI/CD
  • Simplifica administração de containers
  • Reduz erros operacionais

Limitações

  • Usuários do grupo Docker possuem privilégios elevados
  • Pode não resolver falhas do daemon
  • Não corrige problemas de instalação corrompida

Comparações Relevantes

sudo docker vs Grupo Docker

Critériosudo dockerGrupo docker
FacilidadeBaixaAlta
AutomaçãoRuimExcelente
ScriptsLimitadoIdeal
ProduçãoAceitávelRecomendado

Vale a Pena Corrigir Dessa Forma?

Sim.

Adicionar o usuário ao grupo Docker continua sendo a abordagem oficial e mais utilizada em 2026.

Para ambientes corporativos com requisitos rigorosos de segurança, vale considerar Docker Rootless ou plataformas de orquestração mais avançadas.


Perguntas Frequentes (FAQ)

O que causa o erro permission denied no Docker?

Normalmente o usuário não pertence ao grupo docker ou o socket possui permissões incorretas.

Preciso reiniciar o servidor?

Não.
Basta reiniciar a sessão SSH ou executar:
newgrp docker

Posso usar sudo docker?

Sim, mas não é recomendado para automações e rotinas profissionais.

O grupo docker é seguro?

Depende.
Usuários desse grupo possuem privilégios elevados equivalentes ao root em muitos cenários.

Docker Rootless é melhor?

Em termos de segurança, sim.
Em termos de simplicidade operacional, o Docker tradicional ainda é mais comum.


Conclusão

O erro de permissão no Docker é simples de resolver, mas entender sua causa ajuda a evitar problemas recorrentes em servidores Linux, VPS e ambientes de produção.

A solução padrão consiste em adicionar o usuário ao grupo docker, atualizar a sessão e validar o serviço. Em ambientes profissionais, também é essencial considerar os impactos de segurança, já que o grupo Docker possui privilégios elevados.

Seguindo os procedimentos apresentados neste guia, a correção normalmente leva menos de um minuto e resolve mais de 90% dos casos relacionados ao erro de acesso ao socket Docker.


Encontrou esse erro em sua VPS ou servidor Ubuntu?

Salve este guia nos favoritos e compartilhe com sua equipe de DevOps. Se você trabalha com Docker, Linux, containers ou automação, conhecer esse procedimento pode economizar horas de diagnóstico em futuras implantações.


Quer dominar o Docker em ambientes de laboratório doméstico?

Confira todos os tutoriais sobre Docker e Containers →

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