Pe măsură ce dezvolți aplicații sau rulezi pipeline-uri de CI/CD, Docker acumulează în tăcere un volum uriaș de date pe disc: imagini intermediare abandonate (dangling images), containere vechi oprite, volume anonime și cache-ul de compilare BuildKit. Nu este neobișnuit ca folderul Docker să ocupe peste 50–100 GB de spațiu.
Comanda docker system prune este utilitarul suprem de salubrizare a mediului Docker. Aceasta scanează întregul sistem și elimină în siguranță toate resursele care nu mai sunt asociate niciunui container activ.
Combinată cu flagul -a (all) și --volumes, comanda resetează complet spațiul de stocare, eliberând instantaneu zeci de gigabytes fără a afecta containerele care rulează în acel moment.
Sintaxă, opțiuni și concepte cheie
| Opțiune / Concept | Descriere practică |
|---|---|
-a, --all |
Șterge toate imaginile nefolosite de niciun container activ, nu doar cele fără etichetă (dangling). |
--volumes |
Șterge și volumele anonime de date neasociate niciunui container existent. |
-f, --force |
Execută curățarea fără a cere confirmare interactivă de la tastatură (esențial în scripturi cron). |
--filter until= |
Păstrează resursele recente și șterge doar datele mai vechi de o anumită perioadă (ex. `until=24h`). |
Exemple practice și cod
Exemplul 1: Eliberarea a zeci de gigabytes de memorie cache și imagini nefolosite pe server
Comanda optimă de mentenanță periodică.
$ docker system prune -a --volumes
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all volumes not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N] y
Deleted Containers: 14
Deleted Volumes: 8
Deleted Images: 42
Deleted build cache: 18.4GB
Total reclaimed space: 38.65GB
Rezultat & Impact
Recuperare masivă și instantanee de spațiu pe hard disk/SSD.
Greșeli frecvente și bune practici
- Rularea comenzii cu `–volumes` pe servere de producție unde baze de date (PostgreSQL, MySQL) folosesc volume anonime ne-etichetate explicit, ceea ce duce la ștergerea definitivă a datelor.
- Curățarea agresivă a cache-ului de build înainte de un deployment critic, forțând recompilarea de la zero a tuturor dependențelor grele.