Comanda docker diff inspectează stratul temporar Read-Write al unui container activ sau oprit și afișează toate fișierele și directoarele care au fost modificate de la pornirea containerului față de imaginea sa inițială. Este instrumentul ideal pentru a investiga ce fișiere temporare consumă spațiu, dacă un script a generat fișiere de jurnal neașteptate sau dacă un atacator a injectat cod malițios în sistemul de fișiere al containerului.
Interpretarea ieșirii comenzii docker diff
# Inspectăm modificările din containerul 'api-server':
docker diff api-server
# Exemplu de ieșire:
# C /var
# C /var/log
# A /var/log/app_audit.log
# C /tmp
# A /tmp/cache_sess_9482.tmp
# D /etc/nginx/default.conf.bak
Codurile de stare returnate de docker diff:
A(Added – Adăugat): Un fișier sau director nou a fost creat în interiorul containerului.C(Changed – Modificat): Un fișier sau director existent inițial în imagine a fost alterat sau i-au fost schimbate permisiunile.D(Deleted – Șters): Un fișier din imaginea inițială a fost șters de către procesul din container.
Atenție la performanță: Dacă
docker diff listează mii de fișiere adăugate în mod continuu (ex: jurnale sau fișiere cache), containerul va suferi o degradare de viteză din cauza mecanismului Copy-on-Write din OverlayFS. Toate aceste date dinamice trebuie mutate pe un Named Volume sau tmpfs!