DOCKER

Învață Docker: comenzi, Dockerfile și Docker Compose explicate cu exemple

32 de comenzi 6 categorii

Docker este platforma care a popularizat containerele: un mod de a împacheta o aplicație împreună cu toate dependențele ei (biblioteci, runtime, fișiere de configurare) într-o imagine portabilă, care rulează la fel pe laptopul tău, pe serverul de test și în producție. Un container este o instanță izolată a unei imagini, pornită cu o comandă precum docker run, care folosește kernelul sistemului gazdă și pornește în câteva fracțiuni de secundă, spre deosebire de o mașină virtuală.

Secțiunea este organizată pe categorii: Imagini (descărcare, construire, etichetare, publicare), Containere (pornire, oprire, inspectare, depanare), Volume și rețele (date persistente și comunicare între containere), Dockerfile (instrucțiunile cu care îți construiești propriile imagini), Docker Compose (aplicații cu mai multe servicii descrise într-un fișier compose.yaml) și Întreținere și curățenie. Exemplele sunt scrise pentru Docker Engine 24+ și Compose v2, invocat ca docker compose (fără cratimă).

Apasă pe oricare comandă din tabelele de mai jos pentru a vedea explicații detaliate, opțiunile cele mai utile, exemple cu ieșirea reală din terminal și greșelile frecvente pe care le fac începătorii.

macOS • Windows • Linux

Ghid de instalare Docker și Docker Compose pe fiecare sistem de operare

Instalează Docker Desktop pe macOS și Windows sau Docker Engine pe Linux, apoi verifică instalarea cu primul container.

Cerințe de sistem: macOS 13+ (Apple Silicon sau Intel), Windows 10/11 64-bit cu WSL2 activat sau o distribuție Linux 64-bit (Ubuntu, Debian, Fedora); minimum 4 GB RAM.

Terminal macOS (Homebrew / zsh)
# Varianta 1: Docker Desktop (include Docker Engine, CLI și Compose v2)
brew install --cask docker
open -a Docker

# Varianta 2: alternativă ușoară, fără interfață grafică (Colima)
brew install colima docker docker-compose
colima start

# Verificare instalare:
docker version
docker compose version
docker run --rm hello-world

Imagini 6 comenzi

Containere 10 comenzi

Volume și rețele 3 comenzi

Dockerfile 7 comenzi

Docker Compose 4 comenzi

Întreținere și curățenie 2 comenzi

Toate comenzile Docker

Lista completă a comenzilor explicate în această secțiune, cu sintaxa lor uzuală. Fiecare comandă are o pagină dedicată, cu explicații detaliate, opțiuni și exemple practice.

Imagini (6)

Comandă / Directivă Ce face
docker pull Descarcă o imagine (sau o anumită etichetă a ei) dintr-un registry, implicit Docker Hub.
docker pull [opțiuni] nume[:etichetă|@digest]
docker images Listează imaginile descărcate sau construite local, cu etichetă, ID și dimensiune.
docker images [opțiuni] [depozit[:etichetă]]
docker build Construiește o imagine pe baza unui Dockerfile și a unui context de build.
docker build [opțiuni] -t nume:etichetă context
docker tag Adaugă un nume nou (etichetă) unei imagini existente, fără a o copia.
docker tag imagine_sursă[:etichetă] imagine_țintă[:etichetă]
docker push Trimite o imagine locală într-un registry (Docker Hub, GHCR, registry privat).
docker push [opțiuni] nume[:etichetă]
docker rmi Șterge una sau mai multe imagini locale (sau doar o etichetă a lor).
docker rmi [opțiuni] imagine [imagine...]

Containere (10)

Comandă / Directivă Ce face
docker run Creează și pornește un container nou dintr-o imagine.
docker run [opțiuni] imagine [comandă] [argumente...]
docker ps Listează containerele care rulează (sau toate, cu -a).
docker ps [opțiuni]
docker start / docker stop Pornește un container existent oprit sau oprește grațios un container care rulează.
docker start [opțiuni] container... | docker stop [opțiuni] container...
docker restart Oprește și pornește din nou unul sau mai multe containere.
docker restart [opțiuni] container [container...]
docker rm Șterge unul sau mai multe containere (implicit doar pe cele oprite).
docker rm [opțiuni] container [container...]
docker exec Rulează o comandă suplimentară într-un container care rulează deja.
docker exec [opțiuni] container comandă [argumente...]
docker logs Afișează ieșirea standard (stdout și stderr) a unui container.
docker logs [opțiuni] container
docker cp Copiază fișiere sau directoare între container și sistemul gazdă.
docker cp [opțiuni] container:sursă destinație | docker cp [opțiuni] sursă container:destinație
docker inspect Afișează în format JSON toate detaliile de nivel jos ale unui obiect Docker.
docker inspect [opțiuni] nume|id [nume|id...]
docker stats Afișează în timp real consumul de CPU, memorie, rețea și disc al containerelor.
docker stats [opțiuni] [container...]

Volume și rețele (3)

Comandă / Directivă Ce face
docker volume Creează, listează, inspectează și șterge volume gestionate de Docker pentru date persistente.
docker volume <create|ls|inspect|rm|prune> [opțiuni]
docker network Gestionează rețelele virtuale prin care containerele comunică între ele și cu exteriorul.
docker network <create|ls|inspect|connect|disconnect|rm|prune> [opțiuni]
docker run -v / --mount Atașează volume, directoare de pe gazdă (bind mounts) sau memorie RAM (tmpfs) la un container.
docker run -v sursă:destinație[:ro] ... | docker run --mount type=...,source=...,target=... ...

Dockerfile (7)

Comandă / Directivă Ce face
Dockerfile: FROM și WORKDIR Alege imaginea de bază a construcției și setează directorul curent de lucru în imagine.
FROM [--platform=...] imagine[:etichetă|@digest] [AS nume_etapă]
WORKDIR /cale/în/container
Dockerfile: COPY și ADD Copiază fișiere și directoare din contextul de build (sau din altă etapă) în imagine.
COPY [--chown=user:grup] [--chmod=mod] [--from=etapă] sursă... destinație
ADD [--chown=user:grup] sursă... destinație
Dockerfile: RUN Execută comenzi în timpul construirii imaginii și salvează rezultatul într-un strat nou.
RUN [opțiuni] comandă && comandă...
RUN ["executabil", "arg1", "arg2"]
Dockerfile: CMD și ENTRYPOINT Definește procesul principal (PID 1) și argumentele implicite cu care pornește containerul.
ENTRYPOINT ["executabil", "param1"]
CMD ["arg_implicit_1", "arg_implicit_2"]
Dockerfile: ENV, ARG și EXPOSE Definește variabile la build (ARG), variabile de mediu la rulare (ENV) și documentează porturile (EXPOSE).
ARG NUME[=valoare_implicită]
ENV NUME="valoare" [ALT_NUME="valoare"]
EXPOSE port[/tcp|/udp]
Dockerfile: Multi-stage builds Construiește aplicația într-o etapă cu compilatoare și copiază doar rezultatul într-o imagine finală mică.
FROM imagine_build AS builder
...
FROM imagine_runtime
COPY --from=builder /cale/artefact /cale/destinație
.dockerignore Exclude fișiere și directoare din contextul trimis la docker build, accelerând construcția și protejând secretele.
# comentariu
tipar_exclus
!excepție_inclusă

Docker Compose (4)

Comandă / Directivă Ce face
docker compose up Construiește imaginile, creează rețeaua și volumele și pornește toate serviciile din compose.yaml.
docker compose [-f fișier] up [opțiuni] [serviciu...]
docker compose down Oprește și șterge containerele și rețeaua create de docker compose up.
docker compose down [opțiuni]
docker compose logs / ps / exec Inspectează starea serviciilor, urmărește jurnalele și execută comenzi folosind numele serviciului din compose.yaml.
docker compose ps [opțiuni]
docker compose logs [-f] [--tail N] [serviciu...]
docker compose exec [opțiuni] serviciu comandă
compose.yaml Fișierul declarativ în care descrii serviciile, rețelele și volumele unei aplicații multi-container.
services:
nume_serviciu:
image: ... | build: ...
volumes:
networks:

Întreținere și curățenie (2)

Comandă / Directivă Ce face
docker system prune Verifică spațiul ocupat de Docker (system df) și șterge resursele nefolosite (system prune).
docker system df [-v]
docker system prune [opțiuni]
docker login Autentifică clientul Docker la Docker Hub sau la un alt registry privat de imagini.
docker login [opțiuni] [server]
docker logout [server]