Docker Compose 5.5: contêineres init nativos, janelas de atualização de pull_policy e reconciliação de digests
As versões mais recentes do Docker Compose (5.3-5.5.1) introduzem o init de container nativo, um gerenciamento mais inteligente de atualizações de imagem e uma reconciliação de digestões que reduz reinicialização desnecessária: isso é o que muda para aqueles que administram ambientes containerizados.
Quem gerencia servidores Linux com aplicativos containerizados provavelmente já encontrou Docker Compose: a ferramenta que permite descrever, em um único arquivo YAML, todos os serviços que compõem uma aplicação (base de dados, backend, proxy reverso, cache) e iniciá-los com apenas um comando. Nos últimos meses, o projeto lançou uma série de atualizações (da versão 5.3 de julho de 2026 a 5.5.1 do início de setembro) que introduz algumas características muito populares da comunidade de administradores de sistemas: o chamadorecipiente de initnativos, uma gestão mais refinada de atualizações de imagem atravéspull_policye umreconciliação de digestõesque evita reinicialização desnecessária do recipiente. Vejamos em detalhes o que muda e como explorar essas novidades com segurança.
O que é um recipiente init e porque serve
Arecipiente de init(contêiner de inicialização) é um pequeno contêiner que é executado antes do serviço real, para realizar operações preliminares: aplicar as migrações de um banco de dados, baixar arquivos de configuração, definir as permissões corretas em uma pasta compartilhada, esperar que um vício esteja pronto. Antes da versão 5.3 do Docker Compose (lançado em 2 de julho de 2026), os administradores tiveram que recorrer a soluções indiretas, tais como serviços de uso e lançamento reservados no arquivo docker-compose.ymle conectado viadepends_on, ou scripts shell executados manualmente antes de arrancar.
Com a introdução do apoio nativo, os recipientes de init são configurados diretamente dentro do serviço através da nova diretivapre_start. Cada etapa listada empre_starté executado em um recipiente temporário imediatamente após a criação do serviço principal, mas antes de seu início real; se um passo termina com um código de saída diferente de zero, o serviço não parte, evitando assim uma aplicação para iniciar em um estado incoerente (por exemplo, com um banco de dados ainda não atualizado).
Um exemplo prático esclarece melhor a operação:
services:
app:
image: myapp:latest
user: "1000:1000"
volumes:
- data:/data
depends_on:
db:
condition: service_healthy
pre_start:
- command: ["./manage.py", "migrate"]
- image: busybox
user: root
command: sh -c 'chown -R 1000:1000 /data'
db:
image: postgres:18
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
volumes:
data:
Neste exemplo, antes do serviçoappduas etapas são tomadas em sequência: a migração do banco de dados através do próprio comando da aplicação, e a correção das permissões na pasta compartilhada/datausando imagem mínimabusybox. Se você não especificar uma imagem diferente, cada passo por padrão herda a imagem do serviço principal; todos os passos também compartilham as mesmas redes e os mesmos volumes do serviço, então os arquivos preparados durante a inicialização são imediatamente visíveis para o recipiente definitivo. Um detalhe útil para aqueles que gerenciam ambientes com recursos limitados: um passopre_startque não mudou em comparação com a execução anterior e que já foi para o bom fim é automaticamente saltou em execuções sucessivas.
pull_policy: atualizações de imagem mais inteligentes
A Directivapull_policyexiste por um longo tempo em Docker Compose e permite que você verifique quando uma imagem tem que ser baixado novamente do registro: os valores mais comuns sãosempre(Baixar sempre a última versão),Faltando(Baixar apenas se a imagem não estiver presente localmente),♪ ♪(nunca baixar, útil em ambientes isolados) ecompilação(construi a imagem localmente em vez de a baixar). Com a versão 5.5.0, lançado em 17 de agosto de 2026, o comandocompose pulltornou-se mais consciente do tempo gasto pela última atualização: respeita janelas de atualização configuráveis (por exemplo, diariamente, semanal ou cada execução N), evitando desnecessariamente reconectar o registro remoto quando a imagem já foi verificada recentemente. Para um administrador que gerencia dezenas de contêineres em vários servidores, isso resulta em menos tráfego de rede gerado por controles automáticos e tempos de implantação mais previsíveis, especialmente quando as atualizações são lançadas por um pipeline de automação ou um trabalho de cron planejado.
Reconciliação de digestões: reinicialização menos desnecessária
Também na versão 5.5.0 foi introduzido um novo mecanismoreconciliação de imagens digereEm resumo, Docker Compose agora compara mais precisamente o digest (a pegada única) da imagem realmente usada por um recipiente com a imagem mais recente disponível, evitando recriar um recipiente quando, na realidade, não há mudanças substanciais a serem aplicadas. Quem trabalha com Docker sabe como é chato ver um serviço reiniciar sem uma razão aparente durante um simplesdocker compose up: Esta mudança reduz este tipo de interrupções desnecessárias. Mas é bom saber que, como relatado nas notas oficiais de lançamento,primeira vezque você executarcompose upDepois de atualizar para esta versão, alguns contêineres existentes ainda poderiam ser recriados, pois digestos são reavaliados uma vez com a nova lógica. Portanto, é aconselhável planejar esta primeira reinicialização em uma janela de manutenção, especialmente para serviços de produção.
A outra notícia de 5.5.1
A versão mais recente, 5.5.1 (3 de setembro de 2026), foca principalmente em melhorias menores, mas úteis na depuração:gancho do ciclo de vida(os comandos executados automaticamente no início ou desligamento de um serviço) agora capturam e mostram sua saída diretamente no terminal, o que simplifica o diagnóstico quando algo dá errado durante essas etapas. Erros de rastreamento OpenTelemetry também foram melhorados ao usar a bandeira--debug, útil para aqueles que integram a Compose em ambientes de observação mais complexos. Entre as correções de erros também reportamos melhor gerenciamento de sincronização de diretórios vinculados (funçãowatch) e um suporte mais forte para opções IPAM na criação de rede.
Como atualizar Docker Compose com segurança
Antes de atualizar, é bom verificar a versão atualmente instalada com o comandodocker compose version. Na maioria das distribuições Linux, Docker Compose é instalado como um plugin cliente Docker e atualizações com o pacotedocker-compose-pluginatravés do gerenciador de pacotes do sistema (por exemplo:apt update && apt upgrade docker-compose-pluginem Debian e Ubuntu). Alternativamente, aqueles que instalaram o plugin manualmente podem baixar a faixa mais recente diretamente da página de lançamento oficial no GitHub.
Algumas sugestões práticas para aqueles que administram servidores em produção:
Teste primeiro em um ambiente de estadiamento.Como visto, o novo mecanismo de reconciliação de digerir pode causar a recreação de algum recipiente no primeiro início após a atualização: melhor descobrir em um ambiente não crítico.
Ler sempre notas de lançamento oficiaisantes de atualizar para a produção, para ver se há alguma mudança de comportamento afetando seus arquivosdocker-compose.yml.
Utilizar o recipiente de entradapara substituir qualquer script de inicialização externa já em uso: além de simplificar a manutenção, isso torna o comportamento da aplicação mais previsível e documentado diretamente no arquivo de configuração.
Avaliar as janelas de atualização pull_policyse você gerenciar muitos hosts e quiser reduzir a carga nos registros privados da empresa Docker.
No geral, essas inovações confirmam uma tendência clara na evolução do Docker Compose: tornando-o cada vez mais adequado para cenários de produção reais, reduzindo a necessidade de scripts externos e melhorando a previsibilidade de atualizações, dois aspectos particularmente apreciados pelos sistemas Linux em uma base diária.
Fontes oficiais
Docker Compose notas de lançamento oficiais em GitHub
Documentação oficial Docker: Utilizar recipientes de init na composição
Documentação oficial Docker: Docker Compose pull
Partilhar
Qual é a sua reação?
Gosto
0
Não gosto
0
Adoro
0
Divertido
0
Irritado
0
Triste
0
Uau
0