Instalando o Docker no Ubuntu: APT, Snap, Rootless — Guia Completo 2026
Escolha o caminho de instalação do Docker correto no Ubuntu.
Instalar o Docker no Ubuntu deveria ser simples, mas na prática, várias opções relacionadas ao Docker competem pelo mesmo nome de comando, cada uma com empacotamento, comportamento de atualização e implicações de segurança diferentes.
Este guia compara todos os principais caminhos de instalação para que você possa escolher o que melhor se adapta à sua máquina.
As opções que você encontrará incluem:
docker.iodos repositórios do Ubuntudocker-cedo repositório APT oficial da Docker- Docker via Snap
- Docker Desktop
- pacotes
.debbaixados manualmente - o script de conveniência da Docker
- Docker sem privilégios de root (Rootless Docker)

Embora todos forneçam ferramentas de contêineres, eles não são pacotes intercambiáveis. A melhor escolha depende de se a máquina é uma estação de trabalho de desenvolvedor, um executor de CI, um servidor pequeno, uma caixa de auto-hospedagem ou um host de produção. Minha recomendação padrão é calma, mas firme: para a maioria dos usuários técnicos em máquinas Ubuntu comuns, instale o Docker Engine do repositório APT oficial da Docker. Use o docker.io do Ubuntu apenas quando a integração com a distribuição for mais importante do que o empacotamento upstream da Docker. Evite o pacote Snap, a menos que você queira especificamente o comportamento do Snap e entenda seus limites. O Rootless Docker vale a pena conhecer, mas não é automaticamente a melhor opção padrão para todas as máquinas.
Este guia explica os tradeoffs, cobre a segurança pós-instalação e oferece caminhos de instalação limpos para cada método. Uma vez que o Docker Engine estiver em execução, a Docker Cheatsheet é sua referência diária de comandos, e a Docker Compose Cheatsheet cobre configurações de múltiplos contêineres. Ambos estão ao lado de Git, VS Code e guias de CI/CD em Developer Tools: The Complete Guide to Modern Development Workflows.
Recomendação Rápida
A tabela abaixo resume qual caminho de instalação se encaixa em cenários comuns.
| Caso de uso | Instalação recomendada |
|---|---|
| Estação de trabalho de desenvolvedor | Repositório APT oficial da Docker |
| Executor de CI | Repositório APT oficial da Docker, versão fixada se necessário |
| Servidor pequeno auto-hospedado | Repositório APT oficial da Docker |
| Servidor de produção | Repositório APT oficial da Docker, atualizações controladas |
| Sistema conservador apenas Ubuntu | Pacote docker.io do Ubuntu |
| Experimento rápido em desktop | Docker Desktop ou repositório APT oficial |
| Configuração Ubuntu gerenciada por Snap | Docker Snap, com cautela |
| Requerimento forte de daemon não-root | Rootless Docker |
| Host isolado (air-gapped) | Pacotes .deb manuais ou mirror interno |
Se você não tiver um motivo especial para escolher de outra forma, o repositório APT oficial da Docker é o padrão.
O que é Instalado
Uma configuração normal do Docker Engine inclui várias partes móveis:
- Docker daemon:
dockerd - Docker CLI:
docker - runtime de contêiner:
containerd - runtime de baixo nível:
runc - Plugin Buildx:
docker buildx - Plugin Compose:
docker compose
O Docker Compose moderno geralmente é instalado como um plugin do Docker CLI. Isso significa que o comando é:
docker compose version
Não:
docker-compose version
O antigo comando docker-compose ainda existe em guias e sistemas mais antigos, mas novas configurações do Ubuntu geralmente devem usar o plugin Compose.
Opção 1: Instalar Docker do Repositório APT Oficial da Docker
Esta é a melhor opção padrão para a maioria dos desenvolvedores e usuários de DevOps. Você obtém o empacotamento upstream da Docker, lançamentos atuais do Docker Engine, Buildx, plugin Compose e um caminho de atualização APT normal.
Remover Pacotes Conflitantes Primeiro
Antes de instalar o Docker CE, remova pacotes que podem conflitar com os pacotes oficiais da Docker.
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
É normal que o APT diga que alguns desses pacotes não estão instalados.
Este comando não remove imagens, contêineres, volumes ou redes do Docker armazenados em /var/lib/docker. Se você quiser uma limpeza completa, isso é uma etapa separada e deve ser feito deliberadamente.
Adicionar o Repositório APT Oficial da Docker
Instalar pré-requisitos:
sudo apt update
sudo apt install ca-certificates curl
Criar o diretório do keyring:
sudo install -m 0755 -d /etc/apt/keyrings
Baixar a chave do repositório da Docker:
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
Permitir que o APT leia a chave:
sudo chmod a+r /etc/apt/keyrings/docker.asc
Adicionar o repositório da Docker usando o formato .sources deb822:
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Atualizar metadados do APT:
sudo apt update
Instalar Docker Engine, Buildx e Compose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Verificar o serviço:
sudo systemctl status docker
Se não estiver em execução:
sudo systemctl start docker
Verificar a instalação:
sudo docker run hello-world
Verificar versões:
docker --version
docker buildx version
docker compose version
Neste ponto, o Docker funciona, embora você ainda precise de sudo para a maioria dos comandos, a menos que configure o acesso não-root na seção pós-instalação abaixo.
Opção 2: Instalar Docker dos Repositórios do Ubuntu
O Ubuntu fornece o pacote docker.io, que você pode instalar com:
sudo apt update
sudo apt install docker.io docker-compose-v2
Iniciar e habilitar o Docker:
sudo systemctl enable --now docker
Verificar:
sudo docker run hello-world
Quando o docker.io do Ubuntu Faz Sentido
O pacote do Ubuntu pode ser uma boa escolha quando:
- Você prefere pacotes mantidos pelo Ubuntu.
- Você quer uma versão alinhada com o processo de lançamento do Ubuntu.
- Você está gerenciando vários hosts Ubuntu com repositórios padrão.
- Você não precisa do lançamento upstream mais recente da Docker.
- Você quer menos fontes APT de terceiros.
Esta é uma escolha razoável. Não está “errada”.
Quando o docker.io do Ubuntu Não é Ideal
Use o repositório oficial da Docker em vez disso quando:
- Você quer o Docker Engine upstream atual.
- Você segue a documentação própria da Docker.
- Você depende do comportamento atual do Buildx e Compose.
- Você quer os nomes de pacotes Docker CE.
- Você está depurando problemas contra a documentação upstream da Docker.
- Você precisa de paridade previsível de versões do Docker entre distribuições.
Meu viés: para máquinas de desenvolvedor e hosts com muitos contêineres, use o repositório APT oficial da Docker. Para máquinas conservadoras gerenciadas pelo Ubuntu, docker.io é aceitável.
Opção 3: Instalar Docker com Snap
O snap do Docker é instalado com um único comando, mas simplicidade nem sempre significa comportamento previsível em um servidor ou máquina de desenvolvimento.
sudo snap install docker
Pacotes Snap têm seu próprio modelo de empacotamento, comportamento de atualização, suposições de confinamento e layout de sistema de arquivos. Isso é bom para muitos aplicativos de desktop, mas o Docker Engine já é um runtime de contêiner de nível de sistema, então a camada extra do Snap pode surpreender as pessoas. Se você gerencia outro software com Snap, a Snap Package Manager Cheatsheet explica canais, confinamento e comportamento de atualização em mais detalhes.
Quando o Docker Snap Faz Sentido
O Docker Snap pode ser razoável quando:
- Você gerencia intencionalmente o software com Snap.
- Você está usando Ubuntu Core ou um ambiente pesado em Snap.
- Você quer atualizações automáticas estilo snap.
- Você está experimentando e não se importa em corresponder às instruções APT upstream da Docker.
Por Que Eu Geralmente Evito o Docker Snap
Eu geralmente evito o snap do Docker para uso em desenvolvimento e servidor porque:
- A maioria da documentação da Docker assume o layout padrão do Docker Engine.
- Os caminhos de solução de problemas podem diferir de instalações APT.
- O gerenciamento de serviços pode parecer menos transparente.
- As atualizações automáticas do Snap podem ser inconvenientes para software de infraestrutura.
- Alguns detalhes de bind mounts, sockets e integração com o host podem surpreendê-lo.
Se o Docker é central para seu fluxo de trabalho, instale-o como infraestrutura, não como um aplicativo casual de desktop — mesmo quando uma instalação Snap parece tentadora à primeira vista.
Opção 4: Instalar Docker de Pacotes .deb Manuais
A instalação manual de .deb é útil quando:
- A máquina não pode usar repositórios APT externos.
- Você está construindo um processo de instalação offline.
- Você espelha pacotes internamente.
- Você precisa de controle rígido de mudanças.
O tradeoff é a manutenção, porque você deve baixar e instalar novos pacotes manualmente sempre que atualizar.
Uma instalação manual geralmente requer estes pacotes:
containerd.iodocker-cedocker-ce-clidocker-buildx-plugindocker-compose-plugin
Instale-os com:
sudo dpkg -i ./containerd.io_*.deb \
./docker-ce_*.deb \
./docker-ce-cli_*.deb \
./docker-buildx-plugin_*.deb \
./docker-compose-plugin_*.deb
Corrigir dependências ausentes, se necessário:
sudo apt --fix-broken install
Verificar:
sudo systemctl status docker
sudo docker run hello-world
Instalações manuais de .deb não são minha primeira escolha, mas permanecem válidas para ambientes controlados ou isolados (air-gapped) onde a aprovação explícita de pacotes é mais importante do que a conveniência.
Opção 5: Usar o Script de Conveniência da Docker
A Docker fornece um script de conveniência:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Você pode visualizar o que ele faria:
sudo sh get-docker.sh --dry-run
O script de conveniência é útil para máquinas de teste descartáveis, demos, laboratórios e ambientes temporários, mas eu não o usaria como método principal de instalação para sistemas de produção. Um script que configura repositórios e instala pacotes de forma não interativa é conveniente, mas infraestrutura de longa duração merece etapas explícitas e revisáveis — então, para hosts de produção, use o método de repositório APT diretamente.
Docker Desktop vs Docker Engine no Ubuntu
O Docker Desktop para Linux é um produto diferente do Docker Engine. O Docker Engine é o runtime do lado do servidor e o fluxo de trabalho CLI que a maioria dos usuários de servidores Linux espera, enquanto o Docker Desktop adiciona uma GUI, integrações de Desktop e uma experiência de produto mais próxima do uso do Docker no macOS e Windows.
Use o Docker Desktop quando:
- Você quer uma experiência gráfica do Docker.
- Você quer recursos do Desktop.
- Você está alinhando-se com uma equipe que padroniza no Docker Desktop.
- Você não se importa com a camada extra.
Use o Docker Engine quando:
- Você está executando um servidor.
- Você quer um runtime nativo do Linux simples.
- Você prefere serviços gerenciados pelo systemd.
- Você está construindo CI, DevOps ou infraestrutura auto-hospedada.
- Você não precisa da GUI.
Para um público de blog técnico avançado, o Docker Engine é geralmente a opção padrão mais interessante em servidores Linux e hosts de CI.
Pós-Instalação: Executar Docker Sem Sudo
Após a instalação, isso funciona:
sudo docker ps
Mas isso pode falhar:
docker ps
Isso ocorre porque o daemon do Docker escuta em um soquete Unix pertencente ao root. A correção comum é adicionar seu usuário ao grupo docker.
Criar o grupo, se necessário:
sudo groupadd docker
Adicionar seu usuário:
sudo usermod -aG docker $USER
Aplicar a nova associação de grupo:
newgrp docker
Ou faça logout e login novamente.
Testar:
docker run hello-world
Nota de Segurança Importante Sobre o Grupo Docker
O grupo docker não é um grupo de conveniência inofensivo. Um usuário que pode controlar o daemon do Docker geralmente pode obter controle equivalente ao root no host, então para uma máquina de desenvolvedor pessoal isso é frequentemente aceitável, mas em um servidor compartilhado é uma decisão séria de controle de acesso. Trate a associação no grupo docker como acesso administrativo e, se isso parecer muito amplo, considere o Rootless Docker em vez disso.
Rootless Docker no Ubuntu
O Rootless Docker executa o daemon e os contêineres do Docker como um usuário não-root. Isso não é o mesmo que adicionar seu usuário ao grupo docker — com o grupo docker, o daemon ainda roda como root, enquanto no modo rootless o próprio daemon roda como seu usuário.
Quando o Rootless Docker Faz Sentido
O Rootless Docker é útil quando:
- Você quer reduzir o risco de root no nível do daemon.
- Você está em uma máquina de desenvolvimento compartilhada.
- Você executa contêineres pertencentes ao usuário.
- Você não precisa de cada recurso avançado de rede e armazenamento.
- Você quer um padrão mais seguro para cargas de trabalho experimentais.
Quando o Rootless Docker Pode Ser Incômodo
O Rootless Docker pode ser menos conveniente quando:
- Você precisa de contêineres privilegiados.
- Você depende de binding de portas baixas sem configuração extra.
- Você precisa de alguns padrões de rede do host.
- Você espera comportamento idêntico ao Docker rootful.
- Você está seguindo guias escritos para instalações normais do Docker Engine.
O modo rootless melhora a postura de segurança, mas não é zero fricção em comparação com uma instalação rootful padrão.
Instalar Rootless Docker
Instalar pré-requisitos:
sudo apt update
sudo apt install uidmap
Se você instalou o Docker de pacotes DEB ou APT, a ferramenta de configuração rootless deve estar disponível:
dockerd-rootless-setuptool.sh install
Se o Docker rootful já estiver em execução e você quiser apenas o Rootless Docker, desabilite o daemon do sistema:
sudo systemctl disable --now docker.service docker.socket
Você também pode precisar remover o soquete rootful:
sudo rm -f /var/run/docker.sock
Após instalar o Rootless Docker, a ferramenta de configuração geralmente imprime variáveis de ambiente para adicionar ao seu perfil de shell. Elas geralmente se parecem com isto:
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/user/1000/docker.sock
Seu UID pode diferir. Verifique a saída exata da ferramenta de configuração.
Habilitar lingering se você quiser que o serviço do usuário rode após o logout:
sudo loginctl enable-linger $USER
Verificar o serviço do usuário:
systemctl --user status docker
Executar um contêiner de teste:
docker run hello-world
Rootful Docker vs Rootless Docker
| Tópico | Rootful Docker | Rootless Docker |
|---|---|---|
| Usuário do daemon | root | usuário normal |
| Conveniência de comando | alta | média |
| Compatibilidade | mais alta | boa, mas não perfeita |
| Postura de segurança | mais fraca por padrão | melhor por padrão |
| Contêineres privilegiados | suportado | limitado |
| Portas baixas | simples | precisa de configuração extra |
| Uso em servidor | comum | possível, mas planeje cuidadosamente |
| Estação de trabalho de desenvolvedor | comum | bom para usuários conscientes de segurança |
Minha recomendação prática:
- Use o Docker rootful normal para uma máquina de dev pessoal ou servidor simples.
- Adicione apenas usuários confiáveis ao grupo
docker. - Use o Rootless Docker quando o isolamento de usuário for importante.
- Não fingir que o grupo
dockeré uma fronteira de segurança.
Habilitar Docker na Inicialização
No Ubuntu, o Docker instalado de pacotes normais geralmente inicia automaticamente, mas vale a pena confirmar após uma instalação fresca ou migração.
Verificar:
systemctl is-enabled docker
systemctl is-enabled containerd
Habilitar manualmente, se necessário:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Iniciar agora:
sudo systemctl start docker
Desabilitar auto-start:
sudo systemctl disable docker.service
sudo systemctl disable containerd.service
Para o Rootless Docker, use o serviço do usuário:
systemctl --user enable docker
systemctl --user start docker
E habilitar lingering, se necessário:
sudo loginctl enable-linger $USER
Instalar ou Verificar Docker Compose
Com o repositório APT oficial da Docker, instale o Compose como um plugin:
sudo apt update
sudo apt install docker-compose-plugin
Verificar:
docker compose version
Se você instalou o pacote do Ubuntu, você pode usar:
sudo apt install docker-compose-v2
Prefira:
docker compose up -d
Ao invés do estilo antigo:
docker-compose up -d
O comando com hífen docker-compose pertence à era antiga do Compose standalone. Muitos sistemas ainda o têm, mas a nova documentação deve usar docker compose.
Verificar Qual Docker Você Tem Instalado
Quando você herda uma máquina ou depura uma configuração quebrada, estes comandos ajudam a identificar qual empacotamento do Docker está realmente em uso.
Verificar o binário do Docker:
which docker
Verificar propriedade do pacote:
dpkg -S "$(which docker)"
Listar pacotes relacionados ao Docker:
dpkg -l | grep -E 'docker|containerd|runc'
Verificar política do APT:
apt-cache policy docker-ce docker.io containerd.io docker-compose-plugin docker-compose-v2
Verificar Snap:
snap list | grep docker
Verificar status do serviço:
systemctl status docker
systemctl status containerd
Verificar detalhes do servidor Docker:
docker info
Se docker info falhar sem sudo, verifique sua associação de grupo:
groups
Migrar do Ubuntu docker.io para Docker CE
Parar o Docker:
sudo systemctl stop docker
Remover pacotes do Ubuntu:
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc containerd runc
Adicionar o repositório APT oficial da Docker usando os passos acima.
Instalar Docker CE:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Iniciar o Docker:
sudo systemctl start docker
Verificar contêineres existentes:
docker ps -a
docker images
docker volume ls
Normalmente, remover pacotes não exclui /var/lib/docker, então suas imagens, contêineres e volumes podem ainda existir. Ainda assim, faça backup de dados importantes primeiro.
Migrar do Docker Snap para Docker CE
Primeiro, inspecione o que existe:
snap list | grep docker
docker info
Parar cargas de trabalho e fazer backup de volumes importantes ou dados montados por bind.
Remover o snap:
sudo snap remove docker
Em seguida, instale o Docker CE do repositório APT oficial.
Tenha cuidado com os locais de dados. Pacotes Snap frequentemente usam caminhos e regras de confinamento diferentes. Não assuma que os dados do Docker Snap aparecerão automaticamente no caminho padrão /var/lib/docker após a migração.
Para serviços importantes, exporte ou faça backup de dados explicitamente antes de trocar as fontes de pacotes.
Fixar uma Versão do Docker com APT
Para sistemas similares à produção, você pode querer atualizações controladas.
Listar versões disponíveis:
apt list --all-versions docker-ce
Instalar uma versão específica:
VERSION_STRING="5:29.0.0-1~ubuntu.24.04~noble"
sudo apt install docker-ce=$VERSION_STRING \
docker-ce-cli=$VERSION_STRING \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
Manter pacotes do Docker:
sudo apt-mark hold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Remover a retenção mais tarde:
sudo apt-mark unhold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Faça isso quando você precisar de janelas de mudança previsíveis. Para um laptop pessoal, pode ser desnecessário.
Notas sobre Firewall e Rede
O Docker modifica as regras de filtragem de pacotes para fazer a rede de contêineres funcionar, o que é importante se você usa UFW, firewalld, nftables ou regras de firewall personalizadas.
Pontos importantes:
- Portas publicadas do Docker podem contornar expectativas ingênuas do UFW.
- O Docker usa integração com iptables.
- Regras personalizadas devem levar em conta as cadeias criadas pelo Docker.
- O endurecimento de servidor deve ser testado com mapeamentos reais de portas de contêiner.
- Não assuma que
ufw denyprotege uma porta publicada pelo Docker.
Teste portas expostas de outra máquina, não apenas do localhost.
Exemplo:
docker run --rm -p 8080:80 nginx
Então, de outro host:
curl http://server-ip:8080
Em servidores, a rede do Docker é parte do seu modelo de segurança, não um detalhe de implementação que você pode ignorar após a instalação.
Erros Comuns e Correções
Permissão Negada no Soquete do Docker
Erro:
permission denied while trying to connect to the Docker daemon socket
Opções de correção:
Usar sudo:
sudo docker ps
Ou adicionar seu usuário ao grupo docker:
sudo usermod -aG docker $USER
newgrp docker
Lembre-se de que o grupo docker é equivalente ao root na prática, então trate a associação de grupo como uma decisão de acesso privilegiado.
O Daemon do Docker Não Está Em Execução
Verificar status:
sudo systemctl status docker
Iniciá-lo:
sudo systemctl start docker
Verificar logs:
journalctl -u docker --no-pager -n 100
Pacotes Docker Conflitantes
Se a instalação do Docker CE falhar devido a conflitos, remova pacotes antigos. Se o próprio APT estiver em um estado ruim após adicionar o repositório da Docker, passe pelo Ubuntu APT troubleshooting for broken packages and GPG errors antes de tentar novamente.
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
Em seguida, tente novamente:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Comando Compose Não Encontrado
Verificar Compose moderno:
docker compose version
Instalar plugin:
sudo apt install docker-compose-plugin
Se você esperava o comando antigo:
docker-compose version
Você pode estar seguindo documentação antiga. Prefira atualizar o comando para docker compose.
Configuração Antiga do Docker Pertencente ao Root
Se você executou o Docker com sudo antes de configurar o acesso de grupo, sua configuração de usuário pode ser pertencente ao root.
Corrigir propriedade:
sudo chown "$USER":"$USER" "$HOME/.docker" -R
sudo chmod g+rwx "$HOME/.docker" -R
Ou remover a configuração se você não precisar dela:
sudo rm -rf "$HOME/.docker"
Ela será recriada.
Não Consegue Conectar ao Rootless Docker
Verificar ambiente:
echo "$DOCKER_HOST"
Verificar serviço do usuário:
systemctl --user status docker
Definir o caminho do soquete, se necessário:
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
Adicione-o ao seu perfil de shell apenas após confirmar que está correto.
Desinstalar Docker Engine
Remover pacotes Docker CE:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
Remover dados do Docker apenas se você realmente quiser excluir imagens, contêineres e volumes:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Remover arquivos de repositório do Docker:
sudo rm -f /etc/apt/sources.list.d/docker.sources
sudo rm -f /etc/apt/keyrings/docker.asc
Atualizar APT:
sudo apt update
Para Docker Snap:
sudo snap remove docker
Para Ubuntu docker.io:
sudo apt purge docker.io docker-compose-v2
Caminho de Instalação Recomendado para a Maioria dos Usuários do Ubuntu
Para a maioria dos usuários técnicos do Ubuntu, este é o caminho limpo:
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
Em seguida, decida se você quer acesso de grupo para conveniência ou Rootless Docker para isolamento mais rigoroso:
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
Orientação Final e Opinativa
A instalação do Docker no Ubuntu é uma escolha operacional, não apenas uma escolha de pacote. O método que você escolhe afeta atualizações, fronteiras de segurança e quão closely seu host corresponde à documentação upstream da Docker.
Minhas regras práticas são:
- Use o repositório APT oficial da Docker para a maioria das máquinas de desenvolvedor e DevOps.
- Use o
docker.iodo Ubuntu quando a consistência do repositório do Ubuntu for mais importante do que a frescura upstream. - Evite o Docker Snap para fluxos de trabalho de contêiner sérios, a menos que você queira intencionalmente o comportamento do Snap.
- Evite o script de conveniência para hosts de produção.
- Use o
docker composemoderno, não o antigodocker-compose. - Trate o grupo
dockercomo acesso privilegiado. - Considere o Rootless Docker quando o isolamento de usuário for importante.
- Fixe versões em sistemas similares à produção.
- Teste o comportamento do firewall ao publicar portas em servidores.
A instalação do Docker mais entediante é geralmente a melhor: repositório APT oficial, keyring explícito, plugin Compose, serviço systemd, permissões compreendidas e nenhuma camada de empacotamento misteriosa no meio. Uma vez que o motor está no lugar, cargas de trabalho de múltiplos serviços — incluindo stacks de LLM auto-hospedados — são um próximo passo natural; por exemplo, veja Ollama in Docker Compose para executar modelos locais em contêineres. Para manter uma stack Compose em execução através de reinicializações em um servidor, Run Docker Compose as a Linux Service with systemd percorre arquivos de unidade e hábitos operacionais.
Ler Mais
- https://docs.docker.com/engine/install/ubuntu/ “Instalar Docker Engine no Ubuntu | Docker Docs”
- https://packages.ubuntu.com/noble/docker.io “Ubuntu - Detalhes do pacote docker.io em noble”