Curso
Atualizar o Docker pode significar três coisas completamente diferentes. Talvez você precise atualizar o Docker Engine, o Docker Desktop ou as imagens nas quais seus contêineres são executados.
A maioria dos desenvolvedores não sabe qual deles realmente precisa ser atualizado, então eles atualizam tudo (e correm o risco de danificar sua configuração) ou evitam totalmente as atualizações (e se expõem a vulnerabilidades). Para atualizar o Docker com segurança, você só precisa saber o que está atualizando e seguir as etapas certas para cada situação.
Neste artigo, vou te mostrar os caminhos de atualização mais seguros e comuns, sem precisar adivinhar nada. Você vai aprender o que cada tipo de atualização do Docker realmente faz, quando você precisa de cada uma delas e como executar as atualizações passo a passo sem danificar seus contêineres existentes.
Se você é novo no Docker, comece com Introdução ao Docker para construir uma base antes de trabalhar em atualizações emanutenção.
O que significa “atualizar o Docker”?
Como eu disse, o termo “atualizar o Docker” pode significar três coisas diferentes, e se você misturar tudo isso, pode acabar estragando um sistema que estava funcionando bem. Você pode atualizar o Docker Engine (o software principal que roda os contêineres), o Docker Desktop (o aplicativo GUI) ou as imagens de contêiner que seus aplicativos usam.
Cada tipo de atualização afeta seu sistema de maneira diferente. Deixa eu explicar.
Atualizando o Docker Engine vs. atualizando imagens
O Docker Engine é o ambiente de execução que gerencia seus contêineres.
Quando você atualiza o Docker Engine, você está atualizando o software que cria, executa e gerencia contêineres no seu sistema. Essa é uma mudança no nível do sistema que afeta como o Docker funciona. Você está instalando novos binários, atualizando o daemon e, potencialmente, alterando a forma como o Docker interage com o seu sistema operacional.
Imagens de contêiner são os planos a partir dos quais seus contêineres funcionam.
Atualizar uma imagem é pegar uma versão mais recente do aplicativo que está dentro desse contêiner. Por exemplo, se você estiver rodando o PostgreSQL 14 em um contêiner e quiser atualizar para o PostgreSQL 18, atualizar a imagem significa pegar essa nova versão. O Docker Engine em si não muda — só o software dentro dos seus contêineres.
O importante é lembrar que atualizar o Docker Engine pode afetar todos os seus contêineres, enquanto atualizar uma imagem só afeta os contêineres criados a partir dessa imagem específica.
O que acontece com os contêineres em execução
As atualizações do Docker Engine não reiniciam automaticamente seus contêineres.
Quando você atualiza o Docker Engine no Linux, o daemon do Docker reinicia, mas seus contêineres continuam funcionando na maioria das configurações modernas. O Docker usa um recurso chamadorestauração ao vivo do gerenciador de processos ( ) que mantém os contêineres ativos durante as atualizações do daemon. Você pode ver se tá ativado executando docker info e procurando por “Live Restore Enabled: true”.
O Docker Desktop é outra história.
No macOS e no Windows, atualizar o Docker Desktop vai parar todos os contêineres em execução. A VM Docker inteira reinicia durante o processo de atualização. Seus contêineres não vão começar automaticamente depois que a atualização terminar. Você vai precisar iniciá-los manualmente ou usar políticas de reinicialização.
As atualizações de imagem exigem que você recrie os contêineres.
Puxar uma nova versão da imagem não afeta os contêineres em execução. Se você quiser usar a imagem atualizada, precisa parar o contêiner antigo, removê-lo e criar um novo a partir da imagem atualizada.
É por isso que entender a diferença entre atualizações do mecanismo e atualizações de imagem é importante. Um pode precisar de um plano de inatividade, o outro não.
Por que você deve atualizar o Docker
Versões desatualizadas do Docker podem te deixar vulnerável a problemas de segurança e compatibilidade. Se isso não te convencer, continue lendo.
Segurança e estabilidade
Cada versão do Docker corrige falhas de segurança encontradas nas versões anteriores.
Usar uma versão antiga significa que você fica vulnerável a ataques que os invasores já conhecem. Pesquisadores de segurança e a galera do Docker ficam de olho nesses problemas e avisam a empresa por trás do Docker, que resolve tudo nas versões mais recentes. Se você não estiver atualizando, estará deixando a porta aberta.
Além disso, a estabilidade melhora a cada lançamento. As correções de bugs nas versões mais recentes resolvem problemas que incomodam a maioria dos usuários e que podem derrubar seus contêineres em produção.
Você não precisa atualizar toda vez que sai uma nova versão, mas se deixar de atualizar por meses, vai perder várias correções de segurança e melhorias de estabilidade.
Compatibilidade com sistemas modernos
Os sistemas operacionais e as ferramentas de desenvolvimento continuam evoluindo, mesmo que você não atualize o Docker.
Seu sistema operacional recebe atualizações, suas ferramentas de CI/CD ganham novos recursos e plataformas de orquestração como o Kubernetes vão acabar deixando de oferecer suporte para versões mais antigas do Docker. Se você estiver usando o Docker de dois anos atrás, vai começar a ver avisos de compatibilidade, depois erros e, por fim, uma falha total.
As imagens de contêiner modernas também esperam recursos mais recentes do Docker. Os criadores de imagens usam compilações em várias etapas, otimizações do BuildKit e drivers de armazenamento mais recentes que as versões antigas do Docker não suportam. Você pode acabar baixando uma imagem que simplesmente não vai funcionar na sua configuração desatualizada.
Se você está pensando em usar ferramentas de orquestração junto com o Docker, nossa Introdução ao Kubernetes é um ótimo curso para você começar a usar.
Como verificar a versão atual do Docker
Antes de atualizar, é uma boa ideia verificar a versão atual.
Verificando a versão instalada
Execute este comando para ver a sua versão atual do Docker:
docker --version
Isso mostra a versão do Docker Engine instalada no seu sistema:

O número da versão segue a versão semântica: major.minor.patch. Neste exemplo, 29 é a versão principal, 1 é a versão secundária e 3 é a versão de patch.
Para mais detalhes sobre a configuração do Docker, execute este comando:
docker info

Ele mostra um monte de informações sobre a sua instalação do Docker, incluindo a versão do servidor, o driver de armazenamento, a versão do kernel e se recursos como restauração ao vivo estão ativados. Você não precisa de todas essas informações para uma atualização básica, mas elas são úteis para solucionar problemas.
Decidir se é preciso fazer uma atualização
As atualizações de versão secundárias geralmente são seguras e devem ser aplicadas regularmente.
Se você está usando o Docker 29.1.0 e o 29.1.3 está disponível, essa é uma atualização menor com correções de bugs e patches de segurança. Essas atualizações raramente causam problemas, e você deve aplicá-las quando for conveniente.
As atualizações de versão principais exigem mais cuidado. Pular do Docker 24 para o Docker 29 pode trazer mudanças importantes, recursos obsoletos ou novos requisitos. Antes de atualizar para versões principais, dá uma olhada nas notas de lançamento do Docker para a versão que você quer usar e vê o que mudou.
Você pode encontrar a versão mais recente do Docker nos documentos oficiais do Docker ou na página de lançamentos do GitHub. Dá uma olhada no que o site docker –version mostra pra você ver o quanto você tá atrasado.
Como atualizar o Docker Engine
O processo de atualização depende se você está usando o Docker Engine no Linux ou o Docker Desktop no macOS/Windows.
Atualizando o Docker no Linux
O Linux usa o gerenciador de pacotes do seu sistema para atualizar o Docker Engine.
Os comandos exatos variam de acordo com a distribuição, mas o processo é o mesmo:
- Atualize sua lista de pacotes
- Atualizar o Docker
Veja como funciona nos sistemas Ubuntu e Debian:
sudo apt update
sudo apt upgrade docker-ce docker-ce-cli containerd.io
Para sistemas baseados em Red Hat, como CentOS ou Fedora, execute o seguinte:
sudo yum update docker-ce docker-ce-cli containerd.io
O daemon do Docker reinicia automaticamente durante a atualização.
Se você tiver a restauração ao vivo ativada (confira em docker info), seus contêineres em execução continuarão funcionando. Se não, eles vão parar e você vai precisar iniciá-los manualmente.
Depois que a atualização terminar, você pode conferir a nova versão:
docker --version
Se você instalou o Docker usando o script de conveniência em vez dos repositórios de pacotes, vai precisar baixar e executar o script de novo para atualizar.
Atualizando o Docker Desktop no macOS e no Windows
O Docker Desktop lida com as atualizações de maneira diferente do Docker Engine no Linux.
A atualização automática vem ativada por padrão. O Docker Desktop procura por atualizações quando é iniciado e mostra uma notificação quando uma nova versão está disponível. Clique na notificação e o Docker Desktop vai baixar e instalar a atualização pra você.
Se você preferir atualizações manuais, abra as configurações do Docker Desktop e procure a opção “Verificar atualizações”. Você pode desativar as atualizações automáticas aqui e verificar manualmente sempre que quiser.

Também dá pra atualizar o Docker manualmente.
É só baixar o instalador mais recente do Docker Desktop no site da Docker e rodar. O instalador vai detectar a sua instalação atual e atualizá-la sem remover suas imagens ou contêineres.
Lembre-se de que o Docker Desktop vai parar todos os contêineres durante a atualização. A VM Docker inteira reinicia, então planeje alguns minutos de inatividade. Seus contêineres não vão reiniciar automaticamente, a menos que você os configure com políticas de reinicialização como --restart always.
Depois de atualizar, abra o Docker Desktop e espere ele iniciar completamente antes de executar o comando ` docker –version ` para confirmar a nova versão.
Gerenciar vários contêineres individualmente não é algo para se orgulhar. Dá uma olhada no nosso Guia do Docker Compose para saber mais sobre compilações com vários contêineres.
Como verificar a atualização do Docker
O Docker agora deve estar atualizado, mas vamos ver se realmente está.
Confirmando a versão instalada
Primeiro, dá uma olhada no número da versão:
docker --version
A saída deve mostrar a versão que você quer. Se ainda aparecer a versão antiga, a atualização não foi concluída corretamente ou você precisa reiniciar o terminal para pegar os novos binários.
A versão não mudou no meu computador, mas isso é só porque eu já estava com a versão mais recente.
O próximo passo é conferir o status do daemon do Docker:
docker info
Se der erro com “Não é possível conectar ao daemon do Docker”, o daemon não está funcionando. No Linux, reinicie com o seguinte comando:
sudo systemctl restart docker
No macOS e no Windows, é só abrir o Docker Desktop e esperar ele começar.
Aprenda os comandos essenciais para o trabalho diário com contêineres em nosso artigo recente que mostra Os 18 principais comandos do Docker.
Executando um contêiner de teste
Para ver se tá tudo certo depois da atualização, tenta puxar e rodar um contêiner simples:
docker run hello-world
Esse comando pega a pequena imagem hello-world e a executa. Você vai ver uma mensagem explicando que o Docker está funcionando direitinho:

Como atualizar imagens do Docker depois de uma atualização do mecanismo
Atualizar o Docker Engine não atualiza suas imagens de contêiner — você precisa cuidar disso separadamente.
Puxando versões mais recentes da imagem
Você pode usar o comando ` docker pull ` para pegar a versão mais recente de uma imagem:
docker pull postgres
Isso pega a versão mais recente da imagem do PostgreSQL com a tag latest. Mas nem sempre significa o que você pensa que significa — é só uma etiqueta que os responsáveis pela imagem podem usar pra indicar qualquer versão que quiserem.
É sempre bom ser bem claro com as tags pra evitar surpresas:
docker pull postgres:18

Isso pega especificamente a versão 18 do PostgreSQL. Se a versão 18.1 for lançada, executar esse comando de novo vai pegar a imagem 18.1 atualizada, mas ainda dentro da série da versão 18.
Para outras imagens, primeiro verifique suas versões atuais com o comando ` docker images `. Depois, pega as versões mais recentes conforme precisar. Seus contêineres atuais continuam rodando a imagem antiga até você recriá-los com a nova.
Recriando imagens personalizadas
Se você criar suas próprias imagens com Dockerfiles, vai precisar reconstruí-las depois de baixar as atualizações da imagem base.
Digamos que seu Dockerfile começa com FROM python:3.14. Mesmo se você baixar a imagem mais recente do python:3.14, sua imagem personalizada ainda vai usar as camadas antigas armazenadas em cache. Reconstrua para pegar as atualizações:
docker build --no-cache -t myapp:latest .
Isso ignora todas as camadas armazenadas em cache e reconstrói tudo do zero. Leva mais tempo, mas garante que você esteja usando as imagens base e dependências mais recentes.
Depois de reconstruir, pare seus contêineres antigos e comece novos com a imagem atualizada — as atualizações não se aplicam automaticamente aos contêineres em execução.
Precisa liberar espaço em disco depois de atualizar? Nosso tutorial sobre o Docker Prune mostra como limpar imagens e contêineres que não estão sendo usados de forma segura.
Problemas comuns na atualização do Docker
As atualizações do Docker falham de maneiras previsíveis, e a maioria dos problemas tem soluções rápidas. Vou te mostrar alguns que eu mesmo já encontrei.
Erros de permissão, serviço e instalação
Erros de "Permissão negada" significam que seu usuário não consegue acessar o soquete do Docker.
No Linux, adicione seu usuário ao grupo docker:
sudo usermod -aG docker $USER
Saia e entre de novo para que a mudança comece a valer. Depois disso, você não vai mais precisar do sudo para os comandos do Docker.
Erros do tipo “Não é possível conectar-se ao daemon do Docker” significa que o Docker não está funcionando.
Verifique o status do serviço:
sudo systemctl status docker
Se estiver parado ou com problema, dá um jeito de ligar:
sudo systemctl start docker
Se não ligar, dá uma olhada nos registros com o comando ` journalctl -u docker ` pra ver o que tá dando errado.
No macOS e no Windows, é só abrir o aplicativo Docker Desktop.
Conflitos de pacotes durante a instalação acontecem quando pacotes antigos do Docker interferem nos novos.
Você pode usar esse comando para tirar os pacotes antigos do Docker antes de instalar a versão atualizada:
sudo apt remove docker docker-engine docker.io containerd runc
Depois, reinstale o Docker seguindo as instruções oficiais de instalação para a sua distribuição.
Reverter ou fazer o downgrade do Docker
Se a atualização bagunçar sua configuração, você pode voltar para uma versão anterior.
No Linux, dá uma olhada nas versões disponíveis no seu gerenciador de pacotes:
apt list -a docker-ce
Instalar uma versão antiga específica:
sudo apt install <specific-version>
Troca a tag pela versão que precisar. Seus contêineres e imagens continuam intactos durante o downgrade.
Para macOS e Windows, a reversão é mais simples. Baixe o instalador mais antigo do arquivo de versões do Docker e execute-o. O instalador troca a versão atual pela mais antiga sem mexer nos seus contêineres ou imagens.
Melhores práticas para atualização do Docker
O melhor conselho é manter o Docker atualizado regularmente. Se você não faz isso há anos, dê uma olhada nas páginas de lançamento pra ver se tem alguma mudança importante.
Mantendo o Docker atualizado com segurança
Defina um lembrete para verificar as atualizações do Docker em vez de esperar que surjam problemas.
Verifique se tem atualizações todo mês - não porque você precisa instalar todas, mas porque é bom saber o que tá disponível. E você precisa de algo pra te lembrar disso. Os patches de segurança são mais importantes do que as atualizações de recursos, então priorize-os quando forem lançados.
Uma boa prática é documentar sua configuração atual antes de atualizar. Anote a versão do Docker, liste os contêineres em execução com docker ps e anote quaisquer configurações personalizadas. Se algo quebrar, você vai saber exatamente o que mudou.
Se você estiver usando o Docker em produção, teste as atualizações primeiro em uma máquina de desenvolvimento. Crie um ambiente parecido, atualize o Docker lá e veja se seus contêineres ainda funcionam antes de mexer na produção.
Quando automatizar as atualizações
A automação faz sentido para ambientes de desenvolvimento onde o tempo de inatividade não importa.
Você pode configurar o Docker Desktop para atualizar automaticamente ou definir atualizações automáticas no Linux para patches de segurança. Isso funciona bem para máquinas de desenvolvimento locais, onde uma reinicialização não interrompe serviços importantes.
Não automatize atualizações na produção sem as devidas proteções.
Você precisa de monitoramento, estratégias de reversão e testes antes de aplicar atualizações em sistemas que executam cargas de trabalho reais. As atualizações do Docker podem causar problemas — é melhor ter alguém por perto para cuidar dos sistemas de produção.
Atualizações manuais por meio de lembretes mensais são a minha forma preferida, e nunca tive problemas.
Conclusão
A atualização do Docker começa com a compreensão do que você está realmente atualizando.
As atualizações do Docker Engine, do Docker Desktop e das imagens são três coisas diferentes, com impactos diferentes no seu sistema. Descubra qual você precisa, siga o processo certo para a sua plataforma e teste depois. É isso aí.
Coloque um lembrete no seu celular. Verifique se há atualizações mensalmente, priorize os patches de segurança e documente o que você está executando antes de fazer qualquer alteração. As atualizações não devem ser motivo de preocupação — elas devem ser uma tarefa de manutenção de rotina.
Para ambientes de produção, lembre-se de que seus contêineres dependem do funcionamento correto do Docker. Trate as atualizações com o mesmo cuidado que você daria a qualquer outra mudança crítica na infraestrutura - de forma deliberada, com testes e com um plano de reversão caso algo dê errado.
Agora você já sabe como atualizar o Docker — o próximo passo é levar suas habilidades com contêineres para o próximo nível com nosso curso Docker Intermediário. Você vai aprender tudo sobre redes, imagens de contêiner avançadas e Docker Compose.
Perguntas frequentes
Como posso automatizar as atualizações do contêiner Docker usando o Watchtower?
O Watchtower é um contêiner que fica de olho nos seus contêineres em execução e os atualiza automaticamente quando novas versões de imagem estão disponíveis. Você usa o Watchtower como um contêiner com acesso ao soquete Docker, e ele verifica atualizações de imagem de vez em quando, pega novas versões e reinicia seus contêineres com as imagens atualizadas. Isso funciona bem em ambientes de desenvolvimento, mas tenha cuidado na produção — atualizações automáticas podem causar problemas sem testes adequados e estratégias de reversão.
Quais são as melhores práticas para configurar um registro Docker privado?
Proteja seu registro privado com certificados TLS e autenticação para evitar acessos não autorizados. Use back-ends de armazenamento como S3 ou Azure Blob Storage para ter escalabilidade e confiabilidade, em vez de armazenamento em disco local. Faça uma varredura de imagens para ver se tem vulnerabilidades e configure a coleta de lixo para tirar as camadas que não estão sendo usadas e economizar espaço. Você também deve configurar controles de acesso para que as equipes só possam enviar e baixar de repositórios que estão autorizadas a usar.
Qual é a diferença entre uma implantação canary e uma implantação blue-green?
A implantação azul-verde executa dois ambientes de produção idênticos — você implanta a nova versão no ambiente inativo, testa-a e, em seguida, alterna todo o tráfego de uma só vez. A implantação Canary lança a nova versão aos poucos, primeiro para um pequeno grupo de usuários, fica de olho nos problemas e, depois, aumenta devagar o tráfego para a nova versão, enquanto a versão antiga ainda cuida da maioria das solicitações. As implantações canárias detectam problemas com menos impacto para o usuário, enquanto as implantações azul-verde oferecem reversão instantânea ao alternar os ambientes de volta.
Quais são as vantagens de usar compilações em várias etapas no Docker?
As compilações em várias etapas permitem usar várias instruções FROM em um único Dockerfile, o que significa que você pode compilar ou construir seu aplicativo em uma única etapa com todas as ferramentas de compilação e, em seguida, copiar apenas os artefatos finais para uma imagem de tempo de execução mínima. Isso reduz bastante o tamanho da imagem, já que você não precisa enviar dependências de compilação, compiladores ou código-fonte na produção. Você também consegue compilações mais rápidas com um cache de camadas melhor e uma separação mais clara entre os ambientes de compilação e de execução.
Como posso monitorar as métricas de desempenho do contêiner Docker de forma eficaz?
Use o docker stats para ver métricas rápidas em tempo real sobre CPU, memória, rede e E/S de disco para todos os contêineres em execução. Para monitorar a produção, ferramentas como o Prometheus com o cAdvisor juntam métricas detalhadas dos contêineres e guardam tudo para análise e alertas. O Docker também mostra métricas por meio da API dele, que você pode coletar com plataformas de monitoramento. Configure alertas para uso elevado de recursos, reinicializações de contêineres e falhas nas verificações de integridade para detectar problemas antes que eles afetem os usuários.



