docker login în Docker

Autentifică clientul Docker la Docker Hub sau la un alt registry privat de imagini.

Sintaxă comandă
docker login [opțiuni] [server]
docker logout [server]

Ce face docker login

Comanda docker login te autentifică la un registry de containere pentru a putea publica imagini cu docker push, a descărca imagini private cu docker pull și a avea o limită mai mare de descărcări pe Docker Hub. Dacă nu specifici un server, autentificarea se face pe Docker Hub (docker.io).

Pentru registre moderne (Docker Hub, GitHub Container Registry ghcr.io, GitLab registry.gitlab.com), în loc de parola contului se folosește un Personal Access Token (PAT) cu permisiuni restrânse (de exemplu read:packages, write:packages).

În scripturi de CI/CD, nu pasa niciodată parola direct în linia de comandă cu -p parola (deoarece apare în istoria shell-ului și în lista de procese); transmite-o prin stdin folosind opțiunea --password-stdin.

Opțiuni și argumente

Opțiune / Parametru Descriere
server Adresa registry-ului, de ex. ghcr.io, registry.gitlab.com, 123456789.dkr.ecr.eu-central-1.amazonaws.com. Implicit: Docker Hub.
-u, --username Numele de utilizator.
--password-stdin Citește parola sau token-ul în siguranță din stdin (recomandat în scripturi și CI/CD).
docker logout [server] Șterge credențialele salvate local pentru acel registry.

Exemple

Exemplul 1: Autentificare sigură cu token prin stdin (Docker Hub sau GitHub Container Registry)

Token-ul este citit dintr-o variabilă de mediu fără să apară în lista de procese ps aux.

echo "$GHCR_TOKEN" | docker login ghcr.io -u dexter --password-stdin

Ieșire în terminal

Login Succeeded

Exemplul 2: Deconectarea de la un registry

Elimină token-ul din ~/.docker/config.json sau din credential helper.

docker logout ghcr.io

Ieșire în terminal

Removing login credentials for ghcr.io

Greșeli frecvente

  • Folosirea docker login -u user -p parola pe un server partajat: Docker afișează avertismentul WARNING! Using --password via the CLI is insecure. Use --password-stdin, iar parola rămâne în ~/.bash_history.
  • Stocarea credențialelor necriptate în ~/.docker/config.json pe un server de producție fără un credsStore (precum pass sau secretservice).

Comenzi înrudite

  • docker push: Trimite o imagine locală într-un registry (Docker Hub, GHCR, registry privat).
  • docker pull: Descarcă o imagine (sau o anumită etichetă a ei) dintr-un registry, implicit Docker Hub.
  • docker tag: Adaugă un nume nou (etichetă) unei imagini existente, fără a o copia.