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 parolape un server partajat: Docker afișează avertismentulWARNING! 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.jsonpe un server de producție fără uncredsStore(precumpasssausecretservice).
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.