O Que É uma Image Tag? Nomeando e Versionando Imagens
Uma image tag é um rótulo legível em um repositório - myapp:1.4 - que aponta para uma imagem específica, mas pode ser movido para apontar para outra depois.
Tags são como os humanos se referem às imagens. A referência completa combina repositório e tag, como ghcr.io/acme/web:1.4. Como tags são apenas ponteiros móveis, sua estratégia de tagging determina discretamente quão previsíveis e rastreáveis são seus deploys.
Anatomia de uma referência
Uma referência é [registry/]repository:tag. Se você omite a tag, o Docker assume latest. A tag é um rótulo no repositório, não parte do conteúdo da imagem - por isso ela pode ser reapontada.
O problema com latest
latest é apenas uma tag convencional, não "a mais nova" - ela aponta para onde foi feito o último push. Depender dela torna os deploys não reproduzíveis, porque os bits por trás de latest podem mudar sem aviso.
Estratégias de tagging
- Versões semânticas (
1.4.0) para releases. - Tags de Git SHA (
sha-abc123) para rastreabilidade exata a um commit. - Tags de ambiente (
staging,prod) como ponteiros móveis para uma release.
Tags vs digests
Uma tag é conveniente mas mutável; um digest é imutável. Um padrão comum é marcar com tag para humanos e fazer deploy por digest para garantias.
Tagging em CI
Pipelines geralmente marcam cada build com uma versão e o commit SHA, depois fazem push. A tag de SHA amarra uma imagem em execução ao código exato, o que é inestimável ao debugar um deploy.
Principais conclusões
- Uma tag é um rótulo móvel e legível por humanos em um repositório.
latestsignifica "último push", não "mais novo" - evite depender dela.- Marque releases com versões e commit SHAs para rastreabilidade.