Docker prune odstrani ne­po­treb­ne elemente, kot so usta­vlje­ni kon­tej­ner­ji, ne­u­po­ra­blje­ni prostori ter stara omrežja ali slike. To pripomore k op­ti­mi­za­ci­ji iz­ko­ri­šče­no­sti trdega diska in sprosti prostor za shra­nje­va­nje.

Kaj je Docker prune?

Docker prune ali system prune je koristen za sis­te­ma­tič­no čiščenje Doc­ker­je­vih virov, ki niso več potrebni, kar vam pomaga sprostiti pomnilnik. Če Doc­ker­je­vi kon­tej­ner­ji, slike, omrežja in prostori dolgo časa ostanejo ne­u­po­ra­blje­ni, lahko zavzamejo precej prostora na disku. Z prune lahko te ne­u­po­ra­blje­ne vire hitro od­stra­ni­te, s čimer ohranite sistem urejen in za­go­to­vi­te njegovo optimalno delovanje.

Zlasti v razvojnih okoljih, kjer se pogosto ustvar­ja­jo in testirajo novi kon­tej­ner­ji, se lahko nabere veliko število za­sta­re­lih objektov. Docker prune učin­ko­vi­to odstrani ne le ne­u­po­ra­blje­ne kon­tej­ner­je in slike, temveč tudi omrežja in prostore, ki niso več potrebni. To po­e­no­sta­vi upra­vlja­nje virov Dockerja in zmanjša tveganje za pre­o­bre­me­njen sistem.

Za kaj se uporablja Docker prune?

Ukaz prune je primeren za različne situacije pri vsa­ko­dnev­nem delu z Dockerjem. Spodaj smo navedli štiri tipične primere njegove uporabe.

Op­ti­mi­za­ci­ja delovnih procesov: Okolja Docker se pogosto upo­ra­blja­jo za razvoj, te­sti­ra­nje in pro­duk­ci­jo. Brez rednega čiščenja lahko to privede do hitrega kopičenja ne­po­treb­nih virov. Takšna pre­o­bre­me­ni­tev ne le poveča porabo po­mnil­ni­ka, ampak lahko tudi negativno vpliva na zmo­glji­vost sistema. Z od­stra­nje­va­njem ne­u­po­ra­blje­nih virov Docker prune omogoča učin­ko­vi­tej­šo rabo sis­tem­skih virov. To je še posebej pomembno v oblačnih okoljih, kjer se stroški po­ve­ču­je­jo so­raz­mer­no s pov­pra­še­va­njem po prostora za shra­nje­va­nje in ra­ču­nal­ni­ških virih.

Večja varnost: Odvečni in zastareli viri Dockerja lahko pred­sta­vlja­jo varnostna tveganja. Docker prune odstrani ne­u­po­ra­blje­ne kon­tej­ner­je, slike, omrežja in prostore, s čimer zmanjša ver­je­tnost, da bi zastarele in po­ten­ci­al­no ranljive kom­po­nen­te ostale ne­za­šči­te­ne. Z vzdr­že­va­njem urejenega eko­si­s­te­ma Dockerja se zmanjša površina za napade in izboljša splošna varnostna raven vaše IT-in­fra­struk­tu­re.

Povečanje zmo­glji­vo­sti: Pre­o­bre­me­nje­no okolje Docker lahko zmanjša zmo­glji­vost sistema, saj porablja ne­po­treb­ne vire, kot sta procesor in pomnilnik. Redno čiščenje z orodjem Docker prune sprosti prostor na disku ter izboljša učin­ko­vi­tost upra­vlja­nja in izvajanja kon­tej­ner­jev. To ima za posledico znatno krajše čase nalaganja, hitrejše uvajanje aplikacij in boljšo splošno odzivnost sistema.

Po­e­no­sta­vlje­no vzdr­že­va­nje: Redno izvajanje Docker prune znatno po­e­no­sta­vi vzdr­že­va­nje vašega Docker-okolja. Z od­stra­nje­va­njem ne­u­po­ra­blja­nih virov zmanjša zah­tev­nost upra­vlja­vskih nalog za raz­vi­jal­ce. To olajša spre­mlja­nje aktivnih in pomembnih Docker-komponent ter pospeši od­pra­vlja­nje težav. Po­sle­dič­no ekipe pri­hra­ni­jo čas pri upra­vlja­nju in se lahko bolj osre­do­to­či­jo na razvoj in iz­bolj­še­va­nje svojih aplikacij, namesto da se ukvarjajo z odvečnimi viri.

Kakšna je sintaksa Dockerja prune?

Imate okolje Docker in želite počistiti vire, da bi sprostili prostor na disku in po­e­no­sta­vi­li upra­vlja­nje? V tem primeru preprosto izvedite naslednji ukaz, da dostopate do prune storitev:

docker system prune
bash

Docker privzeto prepozna usta­vlje­ne kon­tej­ner­je, ne­u­po­ra­blje­ne slike, omrežja in prostore, ki jih je mogoče počistiti, ter vas pred od­stra­ni­tvi­jo zaprosi za potrditev. Za na­da­lje­va­nje preprosto vnesite »y« in pri­ti­sni­te tipko Enter. Al­ter­na­tiv­no lahko uporabite možnost -f, da pre­sko­či­te potrditev in takoj izvedete čiščenje:

docker system prune -f
bash

Nasvet: Pred uporabo Dockerja prune je pri­po­ro­člji­vo preveriti, kateri Doc­ker­je­vi viri so trenutno prisotni v sistemu. Izvedite naslednje ukaze, da pridobite seznam vseh kon­tej­ner­jev, slik, omrežij in pro­stor­skih enot:

docker ps -a
docker images
docker volume ls
docker network ls
bash

Možnosti Dockerja prune

V spodnji tabeli je prikazan pregled različnih možnosti docker system prune.

Možnost Opis
--all, -a Odstrani vse ne­u­po­ra­blje­ne vire Dockerja.
--force, -f Očisti brez potrditve upo­rab­ni­ka.
--volumes Odstrani ne­u­po­ra­blje­ne prostore.
--filter, -f Omogoča fil­tri­ra­nje virov, ki jih je treba od­stra­ni­ti, v skladu z merili.
--help Prikaže pomoč o uporabi ukaza.

Kako uporabiti ukaz Docker prune

Docker ponuja različne ukaze, ki omogočajo ciljno čiščenje določenih vrst virov. To vam omogoča, da natančno določite, kateri viri naj se od­stra­ni­jo.

Docker prune --filter

Z orodjem Filter lahko nad­zo­ru­je­te izbor virov, ki jih želite od­stra­ni­ti, kot so kon­tej­ner­ji, slike, omrežja in diskovni prostori. To je koristno v razvojnih okoljih, kjer se lahko ustvari veliko začasnih virov, ki se hitro pozabijo.

Splošna sintaksa je:

docker <command> prune --filter "filter=<value>"
bash

Med raz­lič­ni­mi možnostmi fil­tri­ra­nja so:

  • until: Vire filtrira glede na datum njihove ustva­ri­tve. Pri tem je lahko <duration> številčna vrednost z enoto, kot so h (ure), m (minute) ali s (sekunde).
docker <command> prune --filter "until=<duration>"
bash

Primer: Odstrani vse usta­vlje­ne kon­tej­ner­je, ki so starejši od 24 ur

docker container prune --filter "until=24h"
bash
  • label: Fil­tri­ra­nje virov na podlagi njihovih oznak Docker
docker <command> prune --filter "label=<label>"
bash

Primer: Počisti vse ne­u­po­ra­blje­ne zbirke podatkov z oznako mylabel

docker volume prune --filter "label=mylabel"
bash
  • dangling: Odstrani vire, ki jih kontejner ne uporablja več
docker <command> prune --filter "dangling=true"
bash

Primer: Odstrani vse slike, ki se ne upo­ra­blja­jo več (visijo v zraku)*

docker image prune --filter "dangling=true"
bash

Poleg zgoraj navedenih glavnih filtrov so na voljo tudi bolj spe­ci­fič­ne možnosti fil­tri­ra­nja, odvisno od vrste vira:

  • before in since za slike: filtrira slike glede na datum nastanka, bodisi pred določenim časovnim trenutkom bodisi od njega dalje
  • exited za kon­tej­ner­je: filtrira kon­tej­ner­je na podlagi njihovega izhodnega stanja (na primer exited=0 za uspešno za­klju­če­ne kon­tej­ner­je)

Kako od­stra­ni­ti vire Dockerja

Korak 1: Odprite terminal ali ukazno vrstico v svojem sistemu.

Korak 2: Za čiščenje sistema zaženite Docker prune:

docker {resource} prune
bash

{resource} na­do­me­sti­te s številko vrste virov, ki jih želite počistiti. Veljavne vrednosti so container, image, volume in network.

Kako od­stra­ni­ti Doc­ker­je­ve kon­tej­ner­je

Docker po privzetih na­sta­vi­tvah ne sprosti kon­tej­ner­jev samodejno, ko ti za­klju­či­jo svoj ži­vljenj­ski cikel. Pomembno je, da redno pre­ver­ja­te usta­vlje­ne kon­tej­ner­je in jih po potrebi počistite, da sprostite zasedene vire za kon­tej­ner­je, ki še delujejo. Za to obstajata dve metodi.

  • docker rm: Ukaz docker rm je namenjen ročnemu od­stra­nje­va­nju enega ali več Doc­ker­je­vih kon­tej­ner­jev. Če natančno veste, katere kon­tej­ner­je želite izbrisati, je to ustrezna metoda. Izrecno morate navesti iden­ti­fi­ka­cij­ske številke ali imena kon­tej­ner­jev, ki jih želite od­stra­ni­ti, kar vam omogoča, da iz svojega okolja izbrišete le določene kon­tej­ner­je, ne da bi to vplivalo na ostale.

Tukaj je primer, kako izbrisati kon­tej­ner­ja z imenoma container1 in container2:

docker rm container1 container2
bash
  • docker container prune: Nasprotno pa je ukaz docker container prune namenjen hkratnemu od­stra­nje­va­nju več usta­vlje­nih kon­tej­ner­jev. Ta metoda je še posebej primerna za hitro in učin­ko­vi­to spro­sti­tev prostora z izbrisom vseh usta­vlje­nih kon­tej­ner­jev, v katerih trenutno ne teče noben proces.
docker container prune
bash

Tu so navedeni vsi za­u­sta­vlje­ni kon­tej­ner­ji, Docker pa vas pred njihovim od­stra­ni­tvi­jo zaprosi za potrditev. To je zelo praktično v okoljih, kjer se ustvari veliko začasnih kon­tej­ner­jev, ki kasneje postanejo ne­po­treb­ni.

Za vsa­ko­dnev­no upra­vlja­nje in vzdr­že­va­nje vašega okolja Docker je pri­po­ro­člji­vo redno upo­ra­blja­ti docker container prune za samodejno čiščenje usta­vlje­nih kon­tej­ner­jev. Ta pristop prihrani čas in za­go­ta­vlja, da nobeni ne­po­treb­ni viri ne vplivajo na zmo­glji­vost sistema. Nasprotno pa je docker rm idealen za ciljno in nad­zo­ro­va­no brisanje po­sa­me­znih kon­tej­ner­jev, bodisi za te­sti­ra­nje, razvoj ali druge posebne potrebe.

Kako od­stra­ni­ti slike Dockerja

Doc­ker­je­ve slike so gradniki kon­tej­ner­jev. Sčasoma lahko imajo številne različne različice in oznake. Ko ustvarite ali po­so­do­bi­te nove slike, pogosto ostanejo stare ali ne­u­po­ra­blje­ne slike, imenovane »dangling«. Te zasedajo prostor na disku v vašem sistemu in lahko vplivajo na zmo­glji­vost, še posebej če je takih slik veliko.

Z Dockerjem prune lahko poiščete in od­stra­ni­te slike, ki se ne upo­ra­blja­jo več:

docker image prune [Options]
bash

Možne možnosti so na primer:

  • -a, --all: Ta možnost ne odstrani le slike brez povezave, temveč tudi ne­u­po­ra­blje­ne slike. Ne­u­po­ra­blje­ne slike so tiste, ki nimajo več oznak in na katere zato ni mogoče ne­po­sre­dno skli­ce­va­ti z oznakami.
docker image prune -a
bash
  • -f, --force: Docker privzeto zahteva potrditev, preden se slike dejansko izbrišejo. Z -f ali --force lahko ta korak potrditve pre­sko­či­te in čiščenje izvedete takoj.
docker image prune -f
bash

Kako od­stra­ni­ti vse slike Dockerja

Prav tako lahko hitro in temeljito počistite vse slike Dockerja v sistemu, ki jih ne po­tre­bu­je­te več. Za učin­ko­vi­to uporabo Dockerja prune najprej odprite terminal ali ukazno vrstico in vnesite naslednji ukaz:

docker image prune -a --force
bash

Preden začnete s čiščenjem, se pre­pri­čaj­te, katere slike bodo od­stra­nje­ne. Možnost -a lahko izbriše ne­u­po­ra­blje­ne slike, ki jih morda še po­tre­bu­je­te.

Kako od­stra­ni­ti Doc­ker­je­ve zbirke podatkov

Volumi so trajni in ohranijo podatke tudi takrat, ko povezani kontejner ne deluje več. Sčasoma se ti volumi lahko povečajo in po ne­po­treb­nem po­ra­blja­jo vire.

docker volume prune
bash

Ta ukaz poišče vse prostore, ki nimajo aktivnih kon­tej­ner­jev. Prikazal se bo seznam prostorov, ki so pre­dla­ga­ni za od­stra­ni­tev, pred izvedbo čiščenja pa je potrebno potrditev.

Nasprotno pa je ukaz docker volume rm namenjen izključno od­stra­nje­va­nju po­sa­me­znih Doc­ker­je­vih volumnov. To je lahko koristno, če točno veste, kateri volumen želite izbrisati, ne glede na to, ali ga trenutno uporablja kateri od kon­tej­ner­jev. Za od­stra­ni­tev do­lo­če­ne­ga Doc­ker­je­ve­ga volumna uporabite ukaz docker volume rm, ki mu sledi ime ali ID volumna:

docker volume rm volume_name
bash

Še enkrat se pre­pri­čaj­te, da poznate ime ali ID zbirke, ki jo želite izbrisati, saj ta ukaz podatke trajno izbriše in tega ni mogoče pre­kli­ca­ti.

Kako od­stra­ni­ti omrežja Dockerja

V Dockerju so omrežja temeljna sestavina, ki omogoča ko­mu­ni­ka­ci­jo med kon­tej­ner­ji, ne glede na to, ali se nahajajo na istem go­sti­te­lju ali so raz­po­re­je­ni po več go­sti­te­ljih. Omrežja v Dockerju ostanejo ohranjena tudi po tem, ko so kon­tej­ner­ji za­klju­če­ni ali od­stra­nje­ni. Sčasoma lahko to privede do kopičenja ne­u­po­ra­blja­nih omrežij, ki po ne­po­treb­nem po­ra­blja­jo vire. Ukaz docker prune network je preprost način za pre­po­zna­va­nje in od­stra­nje­va­nje teh ne­u­po­ra­blja­nih omrežij.

Ukaz ima naslednjo obliko:

docker network prune [OPTIONS]
bash

Docker ustvari seznam vseh omrežij, ki jih aktivni kon­tej­ner­ji ne upo­ra­blja­jo več ali na katera ni več sklicev. Pred dejanskim od­stra­ni­tvi­jo omrežij se zahteva potrditev.

Najboljše prakse za Docker prune

  • Av­to­mat­sko čiščenje: Upo­ra­bljaj­te av­to­ma­ti­zi­ra­ne skripte ali orodja za redno čiščenje Doc­ker­je­vih slik, kon­tej­ner­jev in prostora, ki jih ne po­tre­bu­je­te več. S tem ohranjate urejeno okolje in op­ti­mi­zi­ra­te zmo­glji­vost.
  • Varnostne popravke in po­so­do­bi­tve: Redno pre­ver­jaj­te varnostne po­so­do­bi­tve in popravke za Doc­ker­je­ve motorje, go­sti­telj­ske ope­ra­cij­ske sisteme in vse Doc­ker­je­ve slike. Po­so­da­blja­nje teh komponent pomaga zmanjšati morebitne varnostne ran­lji­vo­sti.
  • Spre­mlja­nje in beleženje: Uporabite orodja za spre­mlja­nje in beleženje, da spre­mlja­te zmo­glji­vost kon­tej­ner­jev, zaznavate ne­pri­ča­ko­va­ne dogodke in spod­bu­ja­te pro­ak­tiv­no vzdr­že­va­nje.
  • Zunanje varnostno kopiranje: Vzpo­sta­vi­te rutine za zunanje varnostno kopiranje pomembnih podatkov iz Doc­ker­je­vih kon­tej­ner­jev, na primer redno varnostno kopiranje vsebine baz podatkov ali kon­fi­gu­ra­cij­skih datotek.
  • Ročni pregled pred od­stra­ni­tvi­jo: Pred od­stra­ni­tvi­jo določenih virov pazljivo preverite, ali jih še po­tre­bu­je­te. S tem boste zmanjšali tveganje za naključno izgubo podatkov ali pre­ki­ni­tve tekočih procesov.
Tip

Če šele začenjate z Dockerjem, vam pri­po­ro­ča­mo, da si preberete naš izčrpen vodnik po Dockerju.

Go to Main Menu