O Que É um Image Digest? Fixando os Bits Exatos
Um image digest é um hash de conteúdo (sha256:...) que identifica de forma única e permanente o conteúdo exato da imagem - diferente de uma tag, ele nunca pode apontar para algo novo.
Tags são convenientes, mas mutáveis: myapp:latest hoje pode ser bytes diferentes amanhã. Um digest remove essa ambiguidade. Ele é computado a partir do próprio conteúdo da imagem, então o mesmo digest sempre significa os mesmos bytes. Para integridade de supply-chain, fixar por digest é o padrão-ouro.
Content addressing
O digest é um hash SHA-256 do manifest da imagem. Mude qualquer layer ou metadado e o digest muda. É por isso que dois builds com entradas idênticas produzem o mesmo digest - e por que um digest é prova de conteúdo exato.
Referenciando por digest
Você fixa com a forma repo@sha256:abc123..., por exemplo node@sha256:.... Não há tag na referência, então nada upstream pode trocar o conteúdo por baixo dos seus pés.
Digest vs tag
Uma tag é um rótulo móvel que os maintainers podem reapontar; um digest é imutável. Use tags para legibilidade humana e digests quando você precisa de uma garantia de que faz deploy exatamente do que testou.
Onde digests brilham
- Fixar base images para que os builds sejam reproduzíveis.
- Fazer deploy da imagem exata que um pipeline testou.
- Proveniência e attestation, que referenciam digests.
Digests em CI/CD
Um pipeline robusto constrói uma imagem, captura seu digest e passa esse digest (não uma tag flutuante) para o passo de deploy - garantindo que o artifact testado é o deployado. Runners gerenciados mantêm esses pulls rápidos e fazem retry de erros de registry transitórios.
Principais conclusões
- Um digest é um hash SHA-256 que nomeia o conteúdo exato e imutável da imagem.
- Fixe com
repo@sha256:...; tags podem se mover, digests não. - Passe digests entre build e deploy para entregar exatamente o que você testou.