Conteúdo

Tutorial de docker pull: baixe imagens (--platform, -q e digest específico)

docker pull baixa imagens de um repositório de imagens; veja o conceito de imagens e tags em Imagens.

Sintaxe

docker pull [OPÇÕES] NOME[:TAG|@DIGEST]

Opções

OpçãoDescrição
-a, --all-tagsBaixa todas as imagens com tags desse repositório
--platform STRINGEspecifica a plataforma para baixar, se o servidor oferecer suporte a várias plataformas
-q, --quietOculta a saída detalhada

Exemplos

Baixar uma imagem e puxá-la novamente

$ docker pull alpine:3.23
3.23: Pulling from library/alpine
5e9b4a97f639: Pulling fs layer
5e9b4a97f639: Download complete
97ab9557f126: Download complete
79dff55e92ba: Download complete
5e9b4a97f639: Pull complete
Digest: sha256:ff7f0c727dd796aa36787bfcd9a64bf35a6ce72a73451b3359fde849b6703d63
Status: Downloaded newer image for alpine:3.23
docker.io/library/alpine:3.23

$ docker pull alpine:3.23
3.23: Pulling from library/alpine
Digest: sha256:ff7f0c727dd796aa36787bfcd9a64bf35a6ce72a73451b3359fde849b6703d63
Status: Image is up to date for alpine:3.23
docker.io/library/alpine:3.23
  • Na primeira operação, o download das camadas aparece com o progresso, o digest e o status Downloaded newer image.
  • Na operação seguinte, o digest é o mesmo e aparece Image is up to date; o progresso do download das camadas não é listado de novo.
  • Se você não especificar um registry, o nome completo exibido será docker.io/library/alpine:3.23.

Modo silencioso e tag inexistente

$ docker pull -q redis:8-alpine
docker.io/library/redis:8-alpine

$ docker pull nginx:9.99
Error response from daemon: failed to resolve reference "docker.io/library/nginx:9.99": docker.io/library/nginx:9.99: not found
  • -q oculta detalhes como o progresso do download; neste exemplo, somente o nome completo da imagem é exibido.
  • Quando a tag 9.99 não é encontrada, o daemon retorna not found e lista a referência completa da imagem que não foi possível resolver.

Especificar uma plataforma e ver as variantes

$ docker pull --platform linux/arm64 alpine:3.23
3.23: Pulling from library/alpine
197a036d7c64: Pulling fs layer
197a036d7c64: Download complete
4f0cdf9143b4: Download complete
8b7a0920489a: Download complete
197a036d7c64: Pull complete
Digest: sha256:ff7f0c727dd796aa36787bfcd9a64bf35a6ce72a73451b3359fde849b6703d63
Status: Image is up to date for alpine:3.23
docker.io/library/alpine:3.23

$ docker image inspect -f '{{.Os}}/{{.Architecture}}' alpine:3.23
linux/amd64

$ docker images --tree alpine:3.23
IMAGE                   ID             DISK USAGE   CONTENT SIZE   EXTRA
alpine:3.23             ff7f0c727dd7       26.6MB         8.21MB        
├─ linux/amd64          3d67941fed5a       12.9MB         3.85MB        
├─ linux/arm/v6         806bbcf86639           0B             0B        
├─ linux/arm/v7         b43a13ac240c           0B             0B        
├─ linux/arm64/v8       8793abc47938       13.5MB         4.19MB        
├─ linux/386            7811c228ca81           0B             0B        
├─ linux/ppc64le        cc3ef1f3240a           0B             0B        
├─ linux/riscv64        1e12543f1917           0B             0B        
└─ linux/s390x          ac74ebe0c48b           0B             0B        
  • --platform linux/arm64 baixou as camadas da versão arm64, mas o status ainda é Image is up to date: alpine:3.23 é uma imagem multiplataforma, então o nome e o digest não mudaram; apenas foi adicionado conteúdo de outra plataforma à máquina local.
  • Por isso, docker image inspect continua mostrando a plataforma local linux/amd64 por padrão; para ver outras plataformas, use docker images --tree abaixo.
  • docker images --tree lista as variantes de plataforma, como amd64 e arm64/v8; aqui, o uso de disco de arm64/v8 é 13.5MB.

Fixar a versão de uma imagem com digest

$ docker pull alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0
docker.io/library/alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0: Pulling from library/alpine
d0c1d894c237: Pulling fs layer
d0c1d894c237: Download complete
d836c7fd48f4: Download complete
047d62850641: Download complete
d0c1d894c237: Pull complete
Digest: sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0
Status: Downloaded newer image for alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0
docker.io/library/alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0

$ docker images alpine
IMAGE                                                                            ID             DISK USAGE   CONTENT SIZE   EXTRA
alpine:3.23                                                                      ff7f0c727dd7       26.6MB         8.21MB        
alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0   85fe1e81d675         13MB         3.94MB        
  • Adicione @sha256: e o digest ao nome da imagem para especificá-la pelo digest, em vez de usar uma tag que pode mudar.
  • O Digest na saída é igual ao digest especificado, e o status é Downloaded newer image.
  • docker images alpine lista tanto alpine:3.23 quanto a referência por digest, com IDs diferentes: esse digest corresponde a uma versão anterior da 3.23, enquanto a tag 3.23 passou a apontar para um build mais recente. É por isso que você fixa a versão com um digest: tags mudam, digests não.

Capítulos relacionados

Exercícios

Exercício: baixe por digest a imagem Alpine indicada e veja a lista de imagens Alpine locais.

Resposta
docker pull alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0
docker images alpine

Perguntas frequentes

Executar docker pull novamente baixa a imagem outra vez?

Se a imagem já estiver atualizada, a saída mostrará Image is up to date; o digest e a referência da imagem no exemplo também serão os mesmos da primeira vez.

Como fixar a versão da imagem baixada?

Use @sha256: seguido do digest após o nome da imagem, por exemplo, alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0.

Que erro aparece quando uma tag não existe?

No exemplo, nginx:9.99 retorna not found, indicando que o registry não encontrou essa referência de imagem.

Depois de especificar --platform, a imagem sempre aparece com essa plataforma no resultado de inspect?

Após baixar com linux/arm64 no exemplo, docker image inspect mostra linux/amd64; use docker images --tree para ver as várias variantes de plataforma listadas para essa imagem.

Atualizado 26 de outubro de 2026