.
- 1 1. Introdução
- 2 2. Pré‑requisitos e Preparação
- 3 3. Instalando o Docker
- 4 4. Permissões de Usuário e Execução do Docker sem sudo
- 5 5. Verificação de Inicialização e Operação
- 6 6. Instalando e Usando o Docker Compose
- 7 7. Considerações de Segurança e Operacionais
- 7.1 7-1. O Grupo docker Possui Privilégios “Praticamente de Root”
- 7.2 ● Pontos Principais a Serem Observados
- 7.3 7-2. Considerando Docker sem root (Opção avançada)
- 7.4 7-3. Limpeza de Imagens e Contêineres Não Utilizados
- 7.5 7-4. Evite usar a tag “latest” em produção
- 7.6 7-5. Use imagens base oficiais em Dockerfiles
- 7.7 7-6. Tenha cuidado com a exposição de rede e portas
- 7.8 7-7. Gerenciamento de logs durante falhas
- 8 8. Problemas comuns e solução de problemas
1. Introdução
Ao montar um ambiente de desenvolvimento no Ubuntu, situações em que você pensa “vamos apenas instalar o Docker por enquanto” tornaram‑se cada vez mais comuns. Aplicações web, processamento em lote, bancos de dados de teste, middleware de teste… Se você instala tudo isso manualmente a cada vez, um enorme volume de tempo e esforço é consumido apenas para a configuração do ambiente.
É aqui que a tecnologia de virtualização por contêineres Docker se mostra extremamente útil. Com o Docker, você pode gerenciar não apenas a aplicação em si, mas também todas as bibliotecas e configurações necessárias como uma única “imagem”. Uma vez que o Docker esteja instalado no Ubuntu, você pode facilmente:
- Iniciar um novo ambiente de desenvolvimento em minutos
- Garantir que todos os membros da equipe reproduzam o comportamento no mesmo ambiente
- Recriar localmente uma configuração semelhante à de produção com facilidade
Esses benefícios podem ser aproveitados com esforço mínimo.
Por outro lado, para quem está usando o Docker pela primeira vez, há muitos pontos de tropeço comuns:
- Não saber qual procedimento de instalação é realmente o correto
- Não entender a diferença entre o repositório padrão do Ubuntu e o repositório oficial do Docker
- Encontrar erros de permissão devido à confusão sobre quando usar
sudo
Quando você pesquisa por “ubuntu install docker”, encontrará muitos artigos listando longas sequências de comandos, mas eles frequentemente deixam de explicar por que essas etapas são necessárias ou o que caracteriza uma instalação completa.
1-1. Objetivo deste Artigo
Este artigo destina‑se a leitores que desejam instalar o Docker no Ubuntu e cobre os seguintes pontos principais:
- O procedimento atualmente mais comum para instalar o Docker no Ubuntu
- Um método de instalação mais gerenciável usando o repositório oficial
- Como executar o comando
dockersemsudo - Verificação pós‑instalação e comandos básicos essenciais
- Uma introdução às ferramentas mais usadas, como o Docker Compose
Em vez de simplesmente listar comandos, este guia explica por que cada passo é necessário, ajudando‑o a manter seu ambiente mais facilmente no futuro.
1-2. Público‑Alvo e Pré‑requisitos
Este artigo destina‑se a leitores que:
- Entendem as operações básicas do Ubuntu (abrir um terminal, usar o comando
apt, etc.) - São desenvolvedores ou engenheiros em início de carreira que estão experimentando o Docker pela primeira vez
- Estão considerando migrar ambientes de teste existentes para contêineres
Conhecimento avançado de administração Linux não é necessário. Desde que você se sinta confortável digitando comandos em um terminal, este guia será suficiente.
1-3. Estrutura do Artigo e Como Lê‑lo
Este artigo segue a ordem abaixo:
- Verificação de pré‑requisitos
- Métodos de instalação (repositório oficial / script)
- Configurações de permissão e verificação
- Instalação do Docker Compose
- Solução de problemas e próximos passos
Você pode ler o artigo do início ao fim, ou, se o Docker já estiver instalado, pode focar apenas nas seções “Permissões” ou “Compose”.
2. Pré‑requisitos e Preparação
Instalar o próprio Docker é relativamente simples, mas dependendo da sua versão do Ubuntu ou do ambiente já existente, há vários pontos que vale a pena conferir antes. Esta seção resume os pré‑requisitos e preparações necessários para uma instalação tranquila.
2-1. Versões do Ubuntu Compatíveis
O Docker funciona em muitas versões do Ubuntu, mas as seguintes versões LTS são as mais utilizadas:
- Ubuntu 22.04 LTS (Recomendado)
- Ubuntu 20.04 LTS
- Ubuntu 24.04 LTS (Mais recente)
Versões LTS (Long Term Support) oferecem estabilidade a longo prazo, tornando‑as ideais para manter ambientes de desenvolvimento baseados em Docker.
Versões não‑LTS (como 23.10) também podem ser usadas, porém as versões LTS são geralmente preferidas em ambientes profissionais.
2-2. Pacotes Docker Pré‑instalados
.O repositório padrão do Ubuntu inclui um pacote chamado docker.io. No entanto, esse não é o pacote oficial do Docker fornecido pela Docker Inc., e as atualizações costumam ficar atrasadas. Portanto, a instalação do Docker a partir do repositório oficial é altamente recomendada.
Primeiro, verifique e remova quaisquer pacotes relacionados ao Docker, se necessário:
sudo apt remove docker docker.io containerd runc
Se a mensagem indicar que nada está instalado, nenhuma ação é necessária.
2-3. Atualizando o APT e Instalando Pacotes Necessários
Antes de adicionar o repositório oficial do Docker, atualize o APT e instale as ferramentas necessárias:
sudo apt update
sudo apt install -y ca-certificates curl gnupg
Essas ferramentas são necessárias para adicionar a chave GPG e o repositório do Docker de forma segura.
2-4. Verificando Privilégios de Administrador (sudo)
A instalação do Docker requer privilégios sudo. Se sua conta não possuir acesso sudo, troque para uma conta de administrador ou solicite permissão.
Você pode verificar o acesso sudo com o seguinte comando:
sudo -v
Se for solicitado uma senha e o comando for bem‑sucedido, você está pronto para prosseguir.
2-5. Verificando a Conectividade de Rede
Instalar o Docker requer acesso a repositórios externos, portanto uma conexão à internet ativa é obrigatória. Em ambientes corporativos ou com proxy, a obtenção da chave GPG pode falhar devido a restrições de acesso.
Nesses casos, consulte o administrador de rede sobre as configurações de proxy ou listas de permissões.
2-6. Escolhendo o Método de Instalação
Existem três maneiras principais de instalar o Docker:
- Instalar via repositório oficial do Docker (Recomendado)
- Usar o script de instalação
get.docker.com(Rápido e fácil) - Baixar e instalar manualmente os pacotes .deb do Docker (Casos especiais)
Este artigo foca principalmente no método do repositório oficial, que é o mais comum e fácil de manter.
3. Instalando o Docker
Agora vamos instalar o Docker no Ubuntu. Embora existam múltiplos métodos de instalação, este guia concentra‑se no método do repositório oficial do Docker, que é o mais confiável e amplamente usado em ambientes de produção.
Esse método permite atualizações estáveis via apt upgrade, tornando‑o ideal para uso a longo prazo.
3-1. Adicionando o Repositório Oficial do Docker (Recomendado)
Primeiro, registre a chave GPG oficial fornecida pelo Docker e adicione o repositório do Docker ao APT.
Uma vez configurado corretamente, você evita a instalação acidental do pacote desatualizado docker.io do repositório padrão do Ubuntu.
3-1-1. Registrando a Chave GPG
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
/etc/apt/keyrings/é o local recomendado para armazenamento de chaves no Ubuntu 22.04 e posteriores--dearmorconverte a chave para o formato binário
Esta etapa permite que o APT confie no repositório oficial do Docker.
3-1-2. Adicionando o Repositório
Em seguida, adicione o repositório do Docker à lista de fontes do APT.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Pontos principais:
$(. /etc/os-release && echo $VERSION_CODENAME)insere automaticamente o codinome correto do Ubuntu (comojammyoufocal)- Apenas o repositório estável é adicionado
3-1-3. Atualizando as Informações do Repositório
Após adicionar o repositório, atualize o índice do APT.
sudo apt update
Neste ponto, docker-ce (Docker Engine) deve aparecer como um pacote instalável.
3-2. Instalando o Docker Engine
Agora instale os principais pacotes do Docker.
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Papéis dos pacotes:
. docker-ce : núcleo do Docker Engine
docker-ce-cli : interface de linha de comando do Docker
containerd.io : runtime de contêineres principal usado pelo Docker
docker-buildx-plugin : recursos avançados de build, como builds multi‑plataforma
docker-compose-plugin* : Docker Compose V2 (comando docker compose)
Após a instalação, o daemon do Docker inicia automaticamente.
3-3. Verificando a Instalação
Verifique o status de execução do Docker com o comando a seguir:
sudo systemctl status docker
Se aparecer active (running), o Docker está funcionando corretamente.
Pressione q para sair da visualização de status.
3-4. Opcional: Instalação via Script para Conveniência
O Docker também fornece um script de instalação tudo‑em‑um.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Vantagens:
- Menos comandos e configuração rápida
- Ideal para ambientes simples ou descartáveis
Desvantagens:
- Controle de versão mais difícil
- Geralmente desaconselhado para produção ou uso a longo prazo
Embora conveniente para iniciantes, este artigo prioriza a manutenibilidade e, portanto, foca no método do repositório oficial.
3-5. Observações para as Últimas Versões do Ubuntu (ex.: 24.04)
Imediatamente após um lançamento maior do Ubuntu, o repositório oficial do Docker pode ainda não oferecer suporte total à nova versão.
Nesses casos, verifique o seguinte:
- Se o local e o formato da chave GPG correspondem às especificações atuais
- Se
VERSION_CODENAMEé oficialmente suportado - Se não ocorrem erros de assinatura durante
apt update
Se o suporte for adiado, usar temporariamente o script get.docker.com pode ser uma solução prática.
4. Permissões de Usuário e Execução do Docker sem sudo
Depois de instalar o Docker, você pode querer começar a usar o comando docker imediatamente. Contudo, por padrão, você deve prefixar todo comando com sudo.
Esse comportamento é intencional por razões de segurança, mas é inconveniente para o desenvolvimento diário ou aprendizado. Para resolver isso, você pode adicionar seu usuário ao grupo docker, permitindo que os comandos do Docker sejam executados sem sudo.
4-1. Por que Executar sem sudo é Importante
No Ubuntu, o daemon do Docker (dockerd) roda com privilégios de root.
Portanto, criar ou remover contêineres via comando docker normalmente requer acesso root.
O grupo docker existe para atender a essa necessidade.
- Usuários desse grupo podem acessar diretamente o daemon do Docker
- Isso permite comandos como
docker runsemsudo - Essa configuração é quase essencial para uso em desenvolvimento
Observe que o grupo docker efetivamente concede privilégios quase equivalentes aos de root, portanto, é preciso cautela em ambientes compartilhados.
(Para desktops pessoais ou WSL2, isso geralmente não é um problema.)
4-2. Adicionando Seu Usuário ao Grupo docker
Adicione o usuário atualmente logado ao grupo docker:
sudo usermod -aG docker $USER
Esse comando acrescenta o usuário ao grupo. A opção -aG significa append to group (acrescentar ao grupo).
4-3. Aplicando as Alterações
As mudanças de associação ao grupo entram em vigor após logout e login novamente.
Para aplicar a alteração imediatamente, você pode também executar:
newgrp docker
Isso inicia uma nova sessão de shell com as permissões do grupo docker aplicadas.
4-4. Verificando a Execução sem sudo
Agora teste o Docker sem sudo:
docker run hello-world
Saída bem‑sucedida:
- Hello from Docker!
- A imagem foi baixada e a mensagem exibida
Se ocorrer um erro, verifique o seguinte:
- Você fez logout e login novamente após modificar a associação ao grupo?
- O caminho
/usr/bin/dockerestá sendo usado? - O daemon do Docker está em execução (
systemctl status docker)?
4-5. Considerações de Segurança (Importante)
O grupo docker fornece privilégios poderosos que são efetivamente equivalentes ao acesso root.
- Leitura de arquivos arbitrários
- Montagem de diretórios do host em contêineres
- Execução de operações de rede
- Controle a nível de sistema via o socket do Docker
.
Isso é aceitável para sistemas pessoais, mas o gerenciamento de usuários é crítico em servidores compartilhados.
Nesses casos, você pode considerar Docker sem root, que é abordado nas seções posteriores.
5. Verificação de Inicialização e Operação
Depois que a instalação do Docker e a configuração de permissões estiverem concluídas, o próximo passo é verificar se o Docker está operando corretamente.
Esta seção explica como checar o status do serviço Docker e realmente executar contêineres.
5-1. Verificando o Status do Daemon do Docker
Primeiro, verifique se o Docker está sendo executado corretamente em segundo plano.
sudo systemctl status docker
Indicadores de status chave:
- active (running) → Operando normalmente
- inactive → Não está em execução (deve ser iniciado manualmente)
- failed → Erro de configuração ou dependência
Se o status for inactive ou failed, inicie o Docker com o seguinte comando:
sudo systemctl start docker
Para garantir que o Docker inicie automaticamente quando o SO for inicializado:
sudo systemctl enable docker
5-2. Verificando a Operação com o Contêiner hello-world
A forma mais comum de validar a instalação do Docker é executando a imagem oficial hello-world.
docker run hello-world
Este comando realiza as seguintes ações:
- Baixa a imagem do Docker Hub caso ela não esteja presente localmente
- Inicia um contêiner a partir da imagem
- Exibe uma mensagem de teste e sai
Se for bem‑sucedido, você verá uma saída semelhante ao exemplo a seguir:
Hello from Docker!
This message shows that your installation appears to be working correctly.
Se essa mensagem aparecer, o Docker está instalado e funcionando corretamente.
5-3. Testando Comandos Básicos do Docker
Depois que a operação básica for confirmada, experimente alguns comandos Docker comumente usados.
5-3-1. Listando Imagens Docker
docker images
Isso exibe uma lista de imagens baixadas localmente. Se hello-world aparecer, tudo está funcionando como esperado.
5-3-2. Verificando Contêineres em Execução
docker ps
Este comando lista os contêineres que estão em execução no momento.
(O contêiner hello-world termina imediatamente e geralmente não aparecerá.)
Para exibir também os contêineres parados:
docker ps -a
5-3-3. Executando um Exemplo de Imagem Oficial
Para testar um servidor web Nginx simples:
docker run -d -p 8080:80 nginx
-d→ Executa em segundo plano-p→ Mapeia a porta 8080 do host para a porta 80 do contêiner
Abra http://localhost:8080 no seu navegador para ver a página padrão do Nginx.
5-4. Parando e Removendo Contêineres
Você pode parar um contêiner em execução usando o comando a seguir:
docker stop <container-id>
Para remover um contêiner:
docker rm <container-id>
Para remover imagens não utilizadas:
docker rmi <image-id>
Lembre‑se de que as dependências seguem a ordem contêiner → imagem → volume, portanto remova‑as com cuidado.
5-5. Causas Comuns de Erros
● Erros de Permissão
Got permission denied while trying to connect to the Docker daemon socket
→ O usuário não foi adicionado ao grupo docker
● Daemon do Docker Não Está em Execução
Cannot connect to the Docker daemon at unix:///var/run/docker.sock
→ Inicie o Docker com systemctl start docker
● Problemas de Rede que Impedem o Download de Imagens
→ Verifique as configurações de proxy, DNS ou restrições de rede
● Pacote Legado docker.io Ainda Instalado
→ Desinstale-o completamente e reinstale o Docker a partir do repositório oficial
6. Instalando e Usando o Docker Compose
Uma ferramenta essencial para trabalhar com Docker em escala é o Docker Compose.
Aplicações web modernas costumam ser compostas por múltiplos componentes, como bancos de dados, caches, workers e servidores web. Gerenciar cada um deles individualmente com comandos docker run rapidamente se torna impraticável.
O Docker Compose permite definir várias configurações de contêineres em um único arquivo e gerenciá‑los em conjunto, tornando‑o uma das ferramentas mais usadas no desenvolvimento real.
.### 6-1. Verificando a Instalação do Docker Compose V2
Ao instalar o Docker a partir do repositório oficial, o Docker Compose é instalado automaticamente como um plugin.
Verifique a instalação com o seguinte comando:
docker compose version
Se instalado corretamente, você deverá ver uma saída semelhante a:
Docker Compose version v2.x.x
Se você vir um erro como docker: 'compose' is not a docker command, instale o plugin manualmente:
sudo apt install docker-compose-plugin
6-2. Benefícios do Docker Compose
As principais vantagens do Docker Compose incluem:
- Gerenciamento unificado de múltiplos contêineres (iniciar, parar, reiniciar)
- Configuração como código, garantindo ambientes reproduzíveis
- Facilidade para compartilhar configurações de aplicação, API e banco de dados
- Iniciar ambientes de desenvolvimento com um único
docker compose up
Isso torna o Docker Compose quase indispensável para o desenvolvimento de aplicações.
6-3. Estrutura Básica de um Arquivo de Configuração do Compose
O Docker Compose usa um arquivo chamado docker-compose.yml (ou compose.yaml) para definir serviços.
Como exemplo mínimo, crie uma configuração simples que inicia o Nginx.
services:
web:
image: nginx:latest
ports:
- "8080:80"
Execute o seguinte comando no diretório que contém o arquivo:
docker compose up -d
O Nginx será iniciado em segundo plano. Acesse http://localhost:8080 no seu navegador para confirmar.
6-4. Exemplo: Configuração Multi-Contêiner (Web + Banco de Dados)
O verdadeiro poder do Compose se revela ao gerenciar vários contêineres simultaneamente.
Por exemplo, executar uma aplicação web junto com MySQL pode ser configurado da seguinte forma:
services:
app:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
Explicação:
depends_ongarante que o banco de dados seja iniciado antes da aplicaçãovolumespersiste os dados do banco de dados- Múltiplos serviços são gerenciados dentro de um único arquivo YAML
Este é um padrão altamente prático para ambientes de desenvolvimento.
6-5. Comandos Docker Compose Mais Usados
Estes comandos são úteis de memorizar:
| Command | Description |
|---|---|
docker compose up -d | Start containers in the background |
docker compose down | Stop and remove containers and networks |
docker compose build | Build images using Dockerfile |
docker compose ps | List containers managed by Compose |
docker compose logs -f | View logs (optionally per service) |
Usar o Compose permite recriar ambientes idênticos repetidamente, tornando-o ideal para desenvolvimento em equipe.
6-6. Casos de Uso Recomendados para o Compose no Desenvolvimento
- Configuração de ambiente local com um único comando
- Testes em ambientes próximos à produção
- Início de serviços combinados como bancos de dados, caches e filas de mensagens
- Persistência de dados com volumes
- Gerenciamento de configuração com variáveis de ambiente
.env - Suporte a arquiteturas complexas de microsserviços
Depois de estar confortável com Docker e Compose, o tempo de configuração do ambiente é drasticamente reduzido,
melhorando significativamente a eficiência do desenvolvimento.
7. Considerações de Segurança e Operacionais
O Docker é uma ferramenta extremamente poderosa e conveniente, mas “estar containerizado” não significa automaticamente “seguro”.
Ao usar Docker regularmente no Ubuntu, há vários pontos importantes de segurança e operacionais que você deve entender.
Esta seção organiza o conhecimento essencial para operar Docker de forma segura e estável, de maneira fácil de entender mesmo para iniciantes.
7-1. O Grupo docker Possui Privilégios “Praticamente de Root”
O grupo docker configurado anteriormente concede privilégios muito fortes.
Usuários pertencentes ao grupo docker podem operar o SO host via o socket do Docker, o que equivale efetivamente a acesso de nível root.
● Pontos Principais a Serem Observados
- Não adicione usuários arbitrários ao grupo docker em servidores compartilhados
- Entenda as implicações, não apenas a conveniência de “não precisar de sudo”
- Em organizações com políticas de segurança rigorosas, pode ser necessária a aprovação do administrador
Isso raramente é um problema em máquinas Ubuntu pessoais ou PCs de desenvolvimento, mas é necessário julgamento cuidadoso em servidores de produção.
7-2. Considerando Docker sem root (Opção avançada)
O Docker oferece um recurso chamado modo sem root,
que permite que o daemon do Docker seja executado sob uma conta de usuário comum em vez de root.
Vantagens:
- Reduz significativamente o risco de privilégios do SO host
- Permite um uso mais seguro do Docker em ambientes com requisitos de segurança rigorosos
Desvantagens:
- Alguns recursos de rede são restritos
- A configuração é mais complexa para iniciantes
- O comportamento pode diferir do Docker padrão
O modo sem root não é necessário para a maioria dos casos de uso em desenvolvimento,
mas pode ser uma opção viável em ambientes corporativos ou focados em conformidade.
7-3. Limpeza de Imagens e Contêineres Não Utilizados
Com o tempo, o Docker pode consumir uma grande quantidade de espaço em disco sem que você perceba.
Contêineres, imagens e volumes não utilizados podem se acumular e facilmente ultrapassar 100 GB.

● Comandos para remover recursos não utilizados
Removendo imagens não utilizadas
docker image prune
Removendo contêineres e redes juntos
docker system prune
Limpeza agressiva (use com cautela)
docker system prune -a
A opção -a remove todas as imagens não utilizadas, portanto use-a com cuidado.
7-4. Evite usar a tag “latest” em produção
Embora tags como nginx:latest sejam convenientes durante o desenvolvimento, elas não são recomendadas para uso em produção.
Razões:
- A versão exata por trás de
latestnão é garantida - Atualizações inesperadas podem causar falhas em tempo de execução
- A perda de reprodutibilidade leva a implantações instáveis
Abordagem recomendada: Fixar versões explicitamente
Exemplo:
image: nginx:1.25
Versionamento explícito é uma regra fundamental para ambientes de produção.
7-5. Use imagens base oficiais em Dockerfiles
Ao criar Dockerfiles, siga estas diretrizes:
- Prefira imagens oficiais (imagens de biblioteca)
- Evite imagens mantidas por autores desconhecidos ou não confiáveis
- Ao usar imagens de SO leves, como Alpine, verifique o status de suporte a vulnerabilidades
Imagens não confiáveis podem conter malware.
Mesmo em ambientes de desenvolvimento, evite-as sempre que possível.
7-6. Tenha cuidado com a exposição de rede e portas
Quando contêineres expõem portas no SO host,
eles podem ficar acessíveis a partir de fora do sistema.
Precauções:
- Evite mapeamentos desnecessários
-p 80:80 - Para uso local, vincule apenas ao localhost, por exemplo
-p 127.0.0.1:8080:80 - Combine com configurações de firewall, como UFW
- Para produção, use um proxy reverso (como Nginx) para melhorar a segurança
O gerenciamento de portas é especialmente crítico em servidores Ubuntu VPS ou baseados em nuvem.
7-7. Gerenciamento de logs durante falhas
Os logs do Docker podem ser visualizados com o seguinte comando:
docker logs <container-name>
Grandes volumes de logs podem consumir espaço em disco rapidamente,
portanto considere configurar drivers de log e rotação de logs.
8. Problemas comuns e solução de problemas
Embora o Docker seja uma ferramenta poderosa, erros inesperados podem ocorrer no Ubuntu devido a diferenças de ambiente ou falhas de configuração.
Esta seção resume problemas comuns e suas soluções, do nível iniciante ao intermediário.
8-1. Não é possível conectar ao Docker Daemon
● Mensagem de erro
Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
● Causas e soluções
- O daemon do Docker não está em execução :
sudo systemctl start docker - Alterações no grupo docker não foram aplicadas : faça logout e login novamente, ou execute
newgrp docker - Problema de permissão com /var/run/docker.sock : garanta que o usuário pertença ao grupo docker
8-2. Erros de Permissão Negada
● Erro típico
Got permission denied while trying to connect to the Docker daemon socket
● Solução
A causa é quase sempre a falta de configuração do grupo docker.
sudo usermod -aG docker $USER
Em seguida, faça logout e login novamente.
8-3. Erros de GPG ao Adicionar o Repositório APT
● Exemplos de erro
NO_PUBKEY XXXXXXXX
ou
The following signatures couldn't be verified
● Causas e correções
- A chave GPG não foi registrada corretamente
- O curl falhou devido a restrições de rede
Re‑registre a chave com:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Em seguida, execute sudo apt update novamente.
8-4. Conflitos de Bind de Porta
● Exemplo de erro
Bind for 0.0.0.0:80 failed: port is already allocated.
● Causa
- A porta já está sendo usada por outro processo no host
- Outro contêiner Docker está usando a mesma porta
● Soluções
Verifique qual processo está usando a porta:
sudo lsof -i -P -n | grep :80
Verifique os contêineres em execução:
docker ps
Altere o mapeamento de porta:
-p 8080:80
8-5. Falhas ao Baixar Imagens
● Causas comuns
- Restrições de rede (ambientes corporativos)
- Problemas de configuração de DNS
- Acesso ao Docker Hub bloqueado
● Soluções
- Alterar servidores DNS (ex.: 1.1.1.1 ou 8.8.8.8)
- Verificar a configuração de proxy
- Usar uma VPN se o ambiente exigir
8-6. Erros de Exaustão de Espaço em Disco
● Mensagem típica
no space left on device
● Resolução
Remova recursos não utilizados:
docker system prune -a
Revise imagens, contêineres e volumes:
docker images
docker ps -a
docker volume ls
A exaustão de espaço em disco é um dos problemas operacionais mais comuns no Docker.


