Imagini și containere
O imagine se construiește din straturi și e imutabilă. Un container e imaginea „pornită", cu un strat scriibil deasupra. Lecția asta acoperă comenzile de zi cu zi: rulare, listare, log-uri, intrare în container, oprire, curățenie.
Rulare
docker run nginx # rulează, atașat la terminal
docker run -d nginx # detașat (în fundal)
docker run -d -p 8080:80 nginx # mapează portul gazdă 8080 -> 80 din container
docker run -d --name web nginx # cu un nume
docker run --rm -it alpine sh # interactiv, șters la ieșireInspecție
docker ps # containere care rulează
docker ps -a # toate, inclusiv oprite
docker images # imagini locale
docker logs web # log-urile unui container
docker logs -f web # live
docker stats # consum de resurse, liveInteracțiune
docker exec -it web bash # deschide un shell într-un container care rulează
docker exec web ls /etc # rulează o comandă și ieși
docker cp fisier.txt web:/tmp/ # copiază fișiere în/din containerOprire și ștergere
docker stop web
docker start web
docker restart web
docker rm web # șterge containerul (oprit)
docker rmi nginx # șterge imagineaCurățenie
docker system df # cât spațiu ocupă Docker
docker container prune # șterge containerele oprite
docker image prune # imagini fără tag
docker system prune -a # AGRESIV: tot ce nu e folosit acumO bază de date de dezvoltare, într-o comandă
docker run -d --name pg-dev \ -e POSTGRES_PASSWORD=secret \ -e POSTGRES_DB=app \ -p 5432:5432 \ -v pg_data:/var/lib/postgresql/data \ postgres:16 # aplicația se conectează la localhost:5432 # datele persistă în volumul pg_data chiar dacă ștergi containerul
Exercițiu
Rulează un container `nginx` detașat, cu portul mapat la 8080 și un nume. Deschide `localhost:8080` în browser. Intră în container cu `docker exec -it`, uită-te în `/usr/share/nginx/html`. Vezi log-urile. Oprește-l și șterge-l.
Greșeli frecvente
- Uiți `-p` și nu poți accesa serviciul din container.
- Rulezi containere fără `--name` și le identifici greu.
- Nu folosești `--rm` pentru containere de o singură dată și se adună.
- `docker system prune -a` fără să realizezi că șterge imagini pe care le mai vrei.
De reținut
- docker run cu -d (fundal), -p (porturi), --name, -v (volume), -e (env).
- ps / logs / stats pentru inspecție; exec -it pentru shell.
- stop / start / rm / rmi pentru ciclul de viață.
- prune pentru curățenie — cu atenție la `-a`.
Pe scurt
Comenzile Docker de zi cu zi: run cu opțiunile potrivite, exec pentru a intra, logs pentru depanare, prune pentru curățenie.