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ção | Descrição |
|---|---|
-a, --all-tags | Baixa todas as imagens com tags desse repositório |
--platform STRING | Especifica a plataforma para baixar, se o servidor oferecer suporte a várias plataformas |
-q, --quiet | Oculta 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
-qoculta detalhes como o progresso do download; neste exemplo, somente o nome completo da imagem é exibido.- Quando a tag
9.99não é encontrada, o daemon retornanot founde 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/arm64baixou 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 inspectcontinua mostrando a plataforma locallinux/amd64por padrão; para ver outras plataformas, usedocker images --treeabaixo. docker images --treelista 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
Digestna saída é igual ao digest especificado, e o status éDownloaded newer image. docker images alpinelista tantoalpine:3.23quanto a referência por digest, com IDs diferentes: esse digest corresponde a uma versão anterior da 3.23, enquanto a tag3.23passou 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