docker pull în Docker

Imagini Docker 1.0+

Descarcă o imagine (sau o anumită etichetă a ei) dintr-un registry, implicit Docker Hub.

Sintaxă comandă
docker pull [opțiuni] nume[:etichetă|@digest]

Ce face docker pull

Comanda docker pull descarcă o imagine dintr-un registry (implicit Docker Hub, docker.io) în memoria locală a Docker Engine. O imagine este formată din mai multe straturi (layers); Docker descarcă doar straturile pe care nu le are deja, așa că a doua descărcare a unei imagini înrudite este mult mai rapidă.

Dacă nu specifici o etichetă, Docker folosește automat :latest. În producție este recomandat să fixezi o versiune explicită (de exemplu nginx:1.27) sau chiar un digest (@sha256:...), care identifică imaginea în mod imuabil.

Nu este obligatoriu să rulezi docker pull înainte de docker run: dacă imaginea lipsește local, docker run o descarcă automat. Comanda este însă utilă pentru a actualiza o etichetă (de exemplu latest) sau pentru a pregăti imaginile din timp pe un server.

Opțiuni și argumente

Opțiune / Parametru Descriere
nume:etichetă Imaginea de descărcat, de exemplu ubuntu:24.04. Fără etichetă se folosește latest.
nume@sha256:digest Descarcă exact imaginea cu digest-ul indicat, indiferent unde indică eticheta în acel moment.
-a, --all-tags Descarcă toate etichetele unui depozit (atenție, poate fi foarte mult).
--platform Alege platforma, de exemplu linux/amd64 sau linux/arm64 (util pe Mac cu Apple Silicon).
-q, --quiet Afișează doar numele imaginii la final, fără progresul descărcării.
registry/nume Pentru alt registry decât Docker Hub, prefixează numele cu adresa lui, de exemplu ghcr.io/org/app:1.0.

Exemple

Exemplul 1: Descărcarea unei versiuni fixe de Nginx

Specificăm eticheta explicit, ca să știm exact ce versiune rulăm.

docker pull nginx:1.27

Ieșire în terminal

1.27: Pulling from library/nginx
a2318d6c47ec: Pull complete
095d327c79ae: Pull complete
bbfaa25db775: Pull complete
7bb6fb0cfb2b: Pull complete
0723edc10c17: Pull complete
24b3fdc4d1e3: Pull complete
3122471704d5: Pull complete
Digest: sha256:28402db69fec7c17e179ea87882667f1e054391138f77ffaf0c3eb388efc3ffb
Status: Downloaded newer image for nginx:1.27
docker.io/library/nginx:1.27

Exemplul 2: Imagine pentru altă arhitectură

Pe un Mac cu procesor ARM poți descărca explicit varianta amd64, de exemplu pentru a o testa înainte de a o trimite pe un server x86.

docker pull --platform linux/amd64 python:3.12-slim

Ieșire în terminal

3.12-slim: Pulling from library/python
2d429b9e73a6: Pull complete
d5e2b2f2b5e3: Pull complete
f0f6e6a8b1c4: Pull complete
5f2d8c3e9a1b: Pull complete
Digest: sha256:2b0079146a74e23bf4ae8f6a28e1b484c6292f6fb904cbb51825b4a19812fcd8
Status: Downloaded newer image for python:3.12-slim
docker.io/library/python:3.12-slim

Exemplul 3: Descărcare dintr-un registry privat

Pentru registry-uri care cer autentificare, rulează mai întâi docker login.

docker pull ghcr.io/dexblog/api:2.3.1

Greșeli frecvente

  • Bazarea pe eticheta latest în producție: ea se mută la fiecare versiune nouă, așa că două servere pot ajunge să ruleze imagini diferite.
  • Eroarea pull access denied ... repository does not exist or may require docker login apare fie din cauza unei greșeli de scriere în nume, fie pentru că nu ești autentificat la registry-ul privat.

Comenzi înrudite

  • docker images: Listează imaginile descărcate sau construite local, cu etichetă, ID și dimensiune.
  • docker run: Creează și pornește un container nou dintr-o imagine.
  • docker login: Autentifică clientul Docker la Docker Hub sau la un alt registry privat de imagini.
  • docker push: Trimite o imagine locală într-un registry (Docker Hub, GHCR, registry privat).