Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Entenda Docker no Ubuntu 24.04: instale e configure do zero

17 min de leitura  ·  Guia técnico

Docker no Ubuntu 24.04 é uma plataforma de containerização que permite empacotar aplicações e suas dependências em ambientes isolados e reproduzíveis. Para instalar e configurar o Docker do zero no Ubuntu 24.04 LTS, siga estes passos:

  1. Remova versões antigas do Docker e atualize o sistema
  2. Adicione o repositório oficial da Docker Inc. via APT
  3. Instale os pacotes docker-ce, docker-ce-cli e containerd.io
  4. Habilite e inicie o serviço Docker com systemctl
  5. Adicione seu usuário ao grupo docker para rodar sem sudo
  6. Valide a instalação com docker run hello-world

Pré-requisitos para instalar Docker no Ubuntu 24.04

  • Acesso SSH ao servidor com privilégios de root ou sudo — veja como conectar em Acessando servidores VPS Linux da AviraHost
  • Ubuntu 24.04 LTS (Noble Numbat) instalado e atualizado
  • Mínimo de 1 GB de RAM (2 GB recomendado para múltiplos containers)
  • Pelo menos 10 GB de espaço em disco disponível em /var/lib/docker
  • Conexão com a internet para baixar pacotes e imagens
  • Kernel Linux 5.15 ou superior (o Ubuntu 24.04 já inclui kernel compatível)
  • Arquitetura x86_64 (amd64) — suporte também para arm64 e armhf

Como instalar Docker no Ubuntu 24.04 pelo repositório oficial

A instalação do Docker via repositório oficial garante que você receba sempre a versão mais recente e com suporte ativo da Docker Inc. O pacote disponível nos repositórios padrão do Ubuntu costuma estar desatualizado e não inclui todos os componentes necessários para um ambiente de produção.

Primeiro, atualize o índice de pacotes e instale as dependências necessárias:

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

Crie o diretório para armazenar as chaves GPG e adicione a chave oficial da Docker Inc.:

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

Adicione o repositório oficial do Docker ao 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

Atualize o índice de pacotes novamente e instale o Docker Engine completo:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
  containerd.io docker-buildx-plugin docker-ce docker-ce-cli docker-compose-plugin
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.

Verifique a versão instalada para confirmar que o processo foi concluído com sucesso:

docker --version
Docker version 26.1.4, build 5650f9b

Habilitar e iniciar o serviço Docker com systemctl

Após a instalação dos pacotes, o daemon do Docker precisa ser habilitado para iniciar automaticamente junto com o sistema operacional. Esse comportamento é essencial em ambientes de produção onde o servidor pode ser reiniciado.

Habilite o Docker para iniciar no boot e inicie o serviço imediatamente:

sudo systemctl enable docker
sudo systemctl start docker

Verifique o status do daemon para confirmar que está ativo:

sudo systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Mon 2025-01-20 10:23:45 UTC; 5s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 1842 (dockerd)
      Tasks: 8
     Memory: 28.3M
        CPU: 312ms
     CGroup: /system.slice/docker.service
             └─1842 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

O status active (running) confirma que o daemon está operacional. O containerd também é iniciado automaticamente como dependência do Docker Engine.

Configurar Docker para rodar sem sudo no Ubuntu 24.04

Por padrão, o Docker exige privilégios de root para executar comandos. Adicionar seu usuário ao grupo docker elimina a necessidade de usar sudo a cada comando, tornando o fluxo de trabalho mais ágil.

Atenção: membros do grupo docker possuem acesso equivalente ao root no host, pois podem montar volumes e manipular o sistema de arquivos do servidor. Adicione apenas usuários de confiança a este grupo.

sudo usermod -aG docker $USER

Para que a mudança de grupo seja aplicada, encerre a sessão SSH atual e reconecte:

exit

Após reconectar, verifique se o usuário pertence ao grupo docker:

groups $USER
usuario : usuario sudo docker

Agora teste um comando Docker sem sudo:

docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

A saída vazia indica que não há containers em execução, mas o comando funcionou sem erros de permissão.

Validar a instalação com o container hello-world

O container hello-world é a forma padrão de validar que o ambiente Docker está completamente funcional — desde o daemon até o pull de imagens do Docker Hub e a execução de containers.

docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:1408fec50309afee38f3535383f5b09419012b943d84...
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

A mensagem Hello from Docker! confirma que toda a cadeia — cliente, daemon, pull de imagem e execução de container — está funcionando corretamente.

Configurar o Docker Compose no Ubuntu 24.04

O Docker Compose permite definir e gerenciar aplicações multi-container usando arquivos YAML. A partir do Docker Engine moderno, o Compose está disponível como plugin nativo (docker compose), sem necessidade de instalação separada.

Verifique se o plugin foi instalado corretamente:

docker compose version
Docker Compose version v2.27.1

Crie um diretório de teste e um arquivo compose.yml básico para validar o funcionamento:

mkdir ~/teste-compose && cd ~/teste-compose
cat > compose.yml << 'EOF'
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
EOF

Inicie o ambiente definido no Compose:

docker compose up -d
[+] Running 2/2
 ✔ Network teste-compose_default  Created
 ✔ Container teste-compose-web-1  Started

Verifique se o container Nginx está respondendo:

curl -I http://localhost:8080
HTTP/1.1 200 OK
Server: nginx/1.27.0
Date: Mon, 20 Jan 2025 10:30:00 GMT
Content-Type: text/html
Content-Length: 615

Para encerrar o ambiente de teste:

docker compose down

Ajustes essenciais de configuração do daemon Docker

O arquivo /etc/docker/daemon.json centraliza as configurações do daemon Docker. Ajustes neste arquivo permitem controlar o driver de log, limites de armazenamento, DNS interno e o driver de rede padrão — configurações que fazem diferença real em ambientes de produção.

Crie ou edite o arquivo de configuração do daemon:

sudo nano /etc/docker/daemon.json

Adicione as configurações recomendadas para um VPS de produção:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "dns": ["8.8.8.8", "1.1.1.1"],
  "live-restore": true,
  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Hard": 64000,
      "Soft": 64000
    }
  }
}

Explicação de cada diretiva:

  • log-driver json-file com max-size e max-file: limita o tamanho dos logs de cada container para evitar que preencham o disco
  • storage-driver overlay2: driver de armazenamento mais eficiente para o kernel Linux moderno
  • dns: define servidores DNS para resolução dentro dos containers
  • live-restore: mantém containers em execução mesmo durante reinicializações do daemon Docker
  • default-ulimits nofile: aumenta o limite de descritores de arquivo para containers com alta concorrência

Após salvar o arquivo, reinicie o daemon para aplicar as configurações:

sudo systemctl restart docker

Para mais dicas de otimização do servidor Linux onde o Docker está instalado, consulte Dicas de Otimização de Servidores Linux.

Gerenciar imagens e containers Docker no dia a dia

Conhecer os comandos essenciais de gerenciamento de containers é fundamental para operar o Docker com eficiência em produção. Abaixo estão os comandos mais utilizados organizados por categoria.

Gerenciamento de containers:

docker ps                    # lista containers em execução
docker ps -a                 # lista todos os containers (incluindo parados)
docker stop nome_container   # para um container graciosamente
docker rm nome_container     # remove um container parado
docker logs nome_container   # exibe os logs do container
docker exec -it nome_container bash  # acessa o shell do container

Gerenciamento de imagens:

docker images                # lista imagens locais
docker pull nginx:alpine     # baixa uma imagem do Docker Hub
docker rmi nome_imagem       # remove uma imagem local
docker image prune -a        # remove todas as imagens não utilizadas

Atenção: o comando docker system prune -a remove todos os containers parados, redes não utilizadas, imagens sem referência e cache de build. Use com cautela em ambientes de produção, pois a ação é irreversível.

docker system prune -a

Monitoramento de recursos:

docker stats                 # exibe uso de CPU, memória e rede em tempo real
docker inspect nome_container  # retorna detalhes completos em JSON

Problemas comuns e como resolver

Sintoma: erro "permission denied" ao rodar docker sem sudo

Causa: o usuário não foi adicionado ao grupo docker ou a sessão SSH não foi reiniciada após a adição ao grupo.
Solução: execute sudo usermod -aG docker $USER, encerre completamente a sessão SSH com exit e reconecte. Verifique com groups $USER se o grupo docker aparece na lista. Se o problema persistir, reinicie o servidor com sudo reboot para garantir que as mudanças de grupo sejam aplicadas em todas as sessões.

Sintoma: daemon Docker não inicia após instalação

Causa: conflito com versões antigas do Docker instaladas via repositório padrão do Ubuntu (pacotes docker.io ou docker-compose), ou incompatibilidade com o containerd.
Solução: remova completamente as versões antigas antes de instalar pelo repositório oficial:

sudo apt remove -y docker docker-engine docker.io containerd runc
sudo apt autoremove -y

Em seguida, verifique os logs do daemon para identificar erros específicos:

sudo journalctl -u docker.service --no-pager -n 50

Sintoma: containers não conseguem resolver nomes DNS

Causa: o DNS configurado no daemon Docker está inacessível, ou o firewall do host está bloqueando as requisições DNS dos containers na porta 53.
Solução: adicione servidores DNS explícitos no /etc/docker/daemon.json conforme mostrado na seção de configuração do daemon. Se estiver usando UFW, permita o tráfego de rede Docker:

sudo ufw allow in on docker0
sudo ufw allow out on docker0

Reinicie o Docker após qualquer alteração no daemon.json:

sudo systemctl restart docker

Sintoma: erro "no space left on device" ao baixar imagens

Causa: o diretório /var/lib/docker está sem espaço disponível, geralmente por acúmulo de imagens antigas, layers não utilizados ou logs de containers sem limite de tamanho.
Solução: verifique o uso de disco com df -h /var/lib/docker e limpe recursos não utilizados:

docker system df              # mostra uso de disco pelo Docker
docker image prune -a         # remove imagens sem containers associados
docker volume prune           # remove volumes não utilizados

Configure limites de log no daemon.json para evitar recorrência, conforme descrito na seção de ajustes do daemon.

Sintoma: container para imediatamente após iniciar

Causa: o processo principal do container terminou (exit code diferente de 0), geralmente por erro de configuração, variável de ambiente ausente ou problema na imagem.
Solução: inspecione os logs do container para identificar a causa raiz:

docker logs nome_container
docker inspect nome_container | grep -A 5 "ExitCode"

Para depurar, execute o container em modo interativo substituindo o entrypoint:

docker run -it --entrypoint /bin/sh nome_imagem

Perguntas frequentes sobre Docker no Ubuntu 24.04

Como instalar o Docker no Ubuntu 24.04 corretamente?

A instalação correta do Docker no Ubuntu 24.04 exige adicionar o repositório oficial da Docker Inc. via APT, pois a versão disponível nos repositórios padrão do Ubuntu costuma estar desatualizada. Execute curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg, adicione o repositório e instale com sudo apt install docker-ce docker-ce-cli containerd.io. Após a instalação, valide com docker --version para confirmar que o pacote correto foi instalado.

Qual a diferença entre Docker CE e Docker Engine no Ubuntu?

Docker CE (Community Edition) é o nome comercial do pacote open-source mantido pela Docker Inc., enquanto Docker Engine é o daemon central (dockerd) que gerencia containers. Na prática, ao instalar docker-ce via repositório oficial, você obtém o Docker Engine, o CLI e o containerd como runtime de containers — todos necessários para um ambiente funcional. O Docker CE é gratuito e adequado para uso em servidores de produção sem necessidade de licença comercial.

Como rodar Docker sem sudo no Ubuntu 24.04?

Adicione seu usuário ao grupo docker com o comando sudo usermod -aG docker $USER. Em seguida, encerre a sessão SSH e reconecte para que a mudança de grupo seja aplicada. A partir daí, comandos como docker ps e docker run funcionam sem sudo. Atenção: membros do grupo docker têm privilégios equivalentes ao root no host, portanto adicione apenas usuários de confiança a este grupo.

O Docker funciona em VPS com 1 GB de RAM no Ubuntu 24.04?

Sim, o Docker funciona em VPS com 1 GB de RAM, mas o número de containers simultâneos é limitado pelo consumo de memória de cada imagem. Containers leves como Alpine Linux ou Nginx consomem menos de 30 MB cada. Para ambientes com pouca RAM, configure swap e use limites de memória por container com a flag --memory para evitar que um container derrube o host — por exemplo: docker run --memory="256m" nginx:alpine.

Como verificar se o Docker está rodando corretamente após a instalação?

Execute sudo systemctl status docker para verificar se o daemon está ativo. Em seguida, rode docker run hello-world — se o container baixar a imagem e exibir a mensagem de boas-vindas, o ambiente está funcional. Para listar containers em execução, use docker ps, e para ver todos (incluindo parados), docker ps -a. O comando docker info exibe informações detalhadas sobre o daemon, incluindo versão do kernel, driver de armazenamento e número de containers.

Conclusão

  • Instale sempre pelo repositório oficial: use o repositório da Docker Inc. para garantir a versão mais recente do Docker Engine, evitando o pacote desatualizado docker.io dos repositórios padrão do Ubuntu 24.04.
  • Configure o daemon.json antes de ir para produção: defina limites de log, driver overlay2 e live-restore para evitar problemas de disco cheio e garantir que containers sobrevivam a reinicializações do daemon.
  • Adicione o usuário ao grupo docker com consciência: o grupo docker equivale a acesso root no host — use com critério e considere alternativas como Rootless Docker para ambientes com múltiplos usuários.

Leia também

Precisa de ajuda com Docker no seu servidor?

Configurar e manter containers Docker em produção exige um servidor com recursos adequados e suporte técnico disponível quando você precisar. Um VPS com Ubuntu 24.04 pré-configurado pode acelerar significativamente seu ambiente de desenvolvimento e produção.

Conheça os planos de VPS da AviraHost e comece com Docker hoje

  • 0 Os usuários acharam isso útil
  • Docker, Ubuntu, containers, VPS, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Guia Completo: Como escolher o melhor plano de hospedagem para o seu site

Escolher o plano de hospedagem ideal para o seu site é fundamental para garantir seu bom...

Lista Prática: 5 Vantagens de ter SSL gratuito no seu site

Ter um certificado SSL no seu site não é apenas uma questão de segurança, mas também uma...

Comparativo: Hospedagem de sites vs. VPS: qual é a melhor opção?

Quando se trata de escolher entre hospedagem compartilhada ou VPS, as opções variam de acordo...

Dicas de Otimização de Servidores Linux

Dicas de Otimização de Servidores Linux Servidores Linux são amplamente utilizados por sua...

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online...