TL;DR: Não consigo entender como telegraf@sha256:05cbea951c5cf9da6c663321b32848c1b6ffdfa877563237838efa21b508b079
e telegraf@sha256:848201b0601513122f567a6b690b5ef84abbb38e78ca461d1c1d3d7465691d39
são a mesma imagem para telegraf:1.31
, enquanto o primeiro não é mencionado em lugar nenhum. Tenho quase certeza de que são completamente as mesmas imagens, mas estou tentando entender de onde sha256:05cbea9
vem o desconhecido.
Estou trabalhando em um host e notei que a imagem do Docker para o Telegraf tem dois resumos de repositório, o que gerou alguma curiosidade porque eu esperaria ver apenas o resumo do índice ou o resumo do índice e o resumo para Linux/AMD64, já que a imagem é multiarquitetura e o host é Linux/AMD64.
Quando eu corro:
docker inspect 4fffb7e682428f97779fdee3f4c44d062de6da9ba4a754a0f3b3f0ecaf87052e
no servidor, recebo a seguinte saída:
"RepoDigests": [
"telegraf@sha256:05cbea951c5cf9da6c663321b32848c1b6ffdfa877563237838efa21b508b079",
"telegraf@sha256:6b0d623c54754958fed356d2af239de21dcf7c95d63b76298d0cd70df79cc719"
],
O segundo digest parece bom, pois representa o digest do índice. No entanto, quando verifico a API do Docker Hub, o primeiro digest (05cbea...) não é mencionado de forma alguma:
curl -s https://hub.docker.com/v2/namespaces/library/repositories/telegraf/tags/1.31 | jq '.images[] | "\(.architecture) \(.digest)"' | grep 05cbea951c5cf9da6c663321b32848c1b6ffdfa877563237838efa21b508b079
# Grep returns an empty result here
curl -s https://hub.docker.com/v2/namespaces/library/repositories/telegraf/tags/1.31 | jq '.images[] | "\(.architecture) \(.digest)"' | grep amd64
"amd64 sha256:848201b0601513122f567a6b690b5ef84abbb38e78ca461d1c1d3d7465691d39"
No entanto, elas ainda são a mesma imagem. Aqui está como eu verifiquei:
Primeiro hash;
docker pull telegraf@sha256:05cbea951c5cf9da6c663321b32848c1b6ffdfa877563237838efa21b508b079
docker images|grep telegraf
telegraf <none> 4fffb7e68242 4 weeks ago 472MB
docker inspect 4fffb7e68242 --format='{{json .}}'| jq '"\(.Created) \(.Config.Env[1]) \(.RepoDigests)"'
"2024-08-12T15:27:35Z TELEGRAF_VERSION=1.31.3 [\"telegraf@sha256:05cbea951c5cf9da6c663321b32848c1b6ffdfa877563237838efa21b508b079\"]"
Segundo hash;
docker pull telegraf@sha256:848201b0601513122f567a6b690b5ef84abbb38e78ca461d1c1d3d7465691d39
docker images|grep telegraf
telegraf <none> 4fffb7e68242 4 weeks ago 472MB
docker inspect 4fffb7e68242 --format='{{json .}}'| jq '"\(.Created) \(.Config.Env[1]) \(.RepoDigests)"'
"2024-08-12T15:27:35Z TELEGRAF_VERSION=1.31.3 [\"telegraf@sha256:848201b0601513122f567a6b690b5ef84abbb38e78ca461d1c1d3d7465691d39\"]"
Gostaria de saber o que estou perdendo aqui. Agradeceria qualquer dica.
Editar; A única coisa que esqueci de mencionar é que o contêiner telegraf é executado por uma pilha docker swarm. Acho que isso faria diferença em como as imagens são extraídas.