Kako uporabljati ukaz Docker prune – vodnik s primeri
Docker prune odstrani nepotrebne elemente, kot so ustavljeni kontejnerji, neuporabljeni prostori ter stara omrežja ali slike. To pripomore k optimizaciji izkoriščenosti trdega diska in sprosti prostor za shranjevanje.
Kaj je Docker prune?
Docker prune ali system prune je koristen za sistematično čiščenje Dockerjevih virov, ki niso več potrebni, kar vam pomaga sprostiti pomnilnik. Če Dockerjevi kontejnerji, slike, omrežja in prostori dolgo časa ostanejo neuporabljeni, lahko zavzamejo precej prostora na disku. Z prune lahko te neuporabljene vire hitro odstranite, s čimer ohranite sistem urejen in zagotovite njegovo optimalno delovanje.
Zlasti v razvojnih okoljih, kjer se pogosto ustvarjajo in testirajo novi kontejnerji, se lahko nabere veliko število zastarelih objektov. Docker prune učinkovito odstrani ne le neuporabljene kontejnerje in slike, temveč tudi omrežja in prostore, ki niso več potrebni. To poenostavi upravljanje virov Dockerja in zmanjša tveganje za preobremenjen sistem.
Za kaj se uporablja Docker prune?
Ukaz prune je primeren za različne situacije pri vsakodnevnem delu z Dockerjem. Spodaj smo navedli štiri tipične primere njegove uporabe.
Optimizacija delovnih procesov: Okolja Docker se pogosto uporabljajo za razvoj, testiranje in produkcijo. Brez rednega čiščenja lahko to privede do hitrega kopičenja nepotrebnih virov. Takšna preobremenitev ne le poveča porabo pomnilnika, ampak lahko tudi negativno vpliva na zmogljivost sistema. Z odstranjevanjem neuporabljenih virov Docker prune omogoča učinkovitejšo rabo sistemskih virov. To je še posebej pomembno v oblačnih okoljih, kjer se stroški povečujejo sorazmerno s povpraševanjem po prostora za shranjevanje in računalniških virih.
Večja varnost: Odvečni in zastareli viri Dockerja lahko predstavljajo varnostna tveganja. Docker prune odstrani neuporabljene kontejnerje, slike, omrežja in prostore, s čimer zmanjša verjetnost, da bi zastarele in potencialno ranljive komponente ostale nezaščitene. Z vzdrževanjem urejenega ekosistema Dockerja se zmanjša površina za napade in izboljša splošna varnostna raven vaše IT-infrastrukture.
Povečanje zmogljivosti: Preobremenjeno okolje Docker lahko zmanjša zmogljivost sistema, saj porablja nepotrebne vire, kot sta procesor in pomnilnik. Redno čiščenje z orodjem Docker prune sprosti prostor na disku ter izboljša učinkovitost upravljanja in izvajanja kontejnerjev. To ima za posledico znatno krajše čase nalaganja, hitrejše uvajanje aplikacij in boljšo splošno odzivnost sistema.
Poenostavljeno vzdrževanje: Redno izvajanje Docker prune znatno poenostavi vzdrževanje vašega Docker-okolja. Z odstranjevanjem neuporabljanih virov zmanjša zahtevnost upravljavskih nalog za razvijalce. To olajša spremljanje aktivnih in pomembnih Docker-komponent ter pospeši odpravljanje težav. Posledično ekipe prihranijo čas pri upravljanju in se lahko bolj osredotočijo na razvoj in izboljševanje 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 poenostavili upravljanje? V tem primeru preprosto izvedite naslednji ukaz, da dostopate do prune storitev:
docker system prunebashDocker privzeto prepozna ustavljene kontejnerje, neuporabljene slike, omrežja in prostore, ki jih je mogoče počistiti, ter vas pred odstranitvijo zaprosi za potrditev. Za nadaljevanje preprosto vnesite »y« in pritisnite tipko Enter. Alternativno lahko uporabite možnost -f, da preskočite potrditev in takoj izvedete čiščenje:
docker system prune -fbashNasvet: Pred uporabo Dockerja prune je priporočljivo preveriti, kateri Dockerjevi viri so trenutno prisotni v sistemu. Izvedite naslednje ukaze, da pridobite seznam vseh kontejnerjev, slik, omrežij in prostorskih enot:
docker ps -a
docker images
docker volume ls
docker network lsbashMožnosti Dockerja prune
V spodnji tabeli je prikazan pregled različnih možnosti docker system prune.
| Možnost | Opis |
|---|---|
--all, -a
|
Odstrani vse neuporabljene vire Dockerja. |
--force, -f
|
Očisti brez potrditve uporabnika. |
--volumes
|
Odstrani neuporabljene prostore. |
--filter, -f
|
Omogoča filtriranje virov, ki jih je treba odstraniti, 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 odstranijo.
Docker prune --filter
Z orodjem Filter lahko nadzorujete izbor virov, ki jih želite odstraniti, kot so kontejnerji, 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>"bashMed različnimi možnostmi filtriranja so:
until: Vire filtrira glede na datum njihove ustvaritve. Pri tem je lahko<duration>številčna vrednost z enoto, kot soh(ure),m(minute) alis(sekunde).
docker <command> prune --filter "until=<duration>"bashPrimer: Odstrani vse ustavljene kontejnerje, ki so starejši od 24 ur
docker container prune --filter "until=24h"bashlabel: Filtriranje virov na podlagi njihovih oznak Docker
docker <command> prune --filter "label=<label>"bashPrimer: Počisti vse neuporabljene zbirke podatkov z oznako mylabel
docker volume prune --filter "label=mylabel"bashdangling: Odstrani vire, ki jih kontejner ne uporablja več
docker <command> prune --filter "dangling=true"bashPrimer: Odstrani vse slike, ki se ne uporabljajo več (visijo v zraku)*
docker image prune --filter "dangling=true"bashPoleg zgoraj navedenih glavnih filtrov so na voljo tudi bolj specifične možnosti filtriranja, odvisno od vrste vira:
beforeinsinceza slike: filtrira slike glede na datum nastanka, bodisi pred določenim časovnim trenutkom bodisi od njega daljeexitedza kontejnerje: filtrira kontejnerje na podlagi njihovega izhodnega stanja (na primerexited=0za uspešno zaključene kontejnerje)
Kako odstraniti vire Dockerja
Korak 1: Odprite terminal ali ukazno vrstico v svojem sistemu.
Korak 2: Za čiščenje sistema zaženite Docker prune:
docker {resource} prunebash{resource} nadomestite s številko vrste virov, ki jih želite počistiti. Veljavne vrednosti so container, image, volume in network.
Kako odstraniti Dockerjeve kontejnerje
Docker po privzetih nastavitvah ne sprosti kontejnerjev samodejno, ko ti zaključijo svoj življenjski cikel. Pomembno je, da redno preverjate ustavljene kontejnerje in jih po potrebi počistite, da sprostite zasedene vire za kontejnerje, ki še delujejo. Za to obstajata dve metodi.
docker rm: Ukazdocker rmje namenjen ročnemu odstranjevanju enega ali več Dockerjevih kontejnerjev. Če natančno veste, katere kontejnerje želite izbrisati, je to ustrezna metoda. Izrecno morate navesti identifikacijske številke ali imena kontejnerjev, ki jih želite odstraniti, kar vam omogoča, da iz svojega okolja izbrišete le določene kontejnerje, ne da bi to vplivalo na ostale.
Tukaj je primer, kako izbrisati kontejnerja z imenoma container1 in container2:
docker rm container1 container2bashdocker container prune: Nasprotno pa je ukazdocker container prunenamenjen hkratnemu odstranjevanju več ustavljenih kontejnerjev. Ta metoda je še posebej primerna za hitro in učinkovito sprostitev prostora z izbrisom vseh ustavljenih kontejnerjev, v katerih trenutno ne teče noben proces.
docker container prunebashTu so navedeni vsi zaustavljeni kontejnerji, Docker pa vas pred njihovim odstranitvijo zaprosi za potrditev. To je zelo praktično v okoljih, kjer se ustvari veliko začasnih kontejnerjev, ki kasneje postanejo nepotrebni.
Za vsakodnevno upravljanje in vzdrževanje vašega okolja Docker je priporočljivo redno uporabljati docker container prune za samodejno čiščenje ustavljenih kontejnerjev. Ta pristop prihrani čas in zagotavlja, da nobeni nepotrebni viri ne vplivajo na zmogljivost sistema. Nasprotno pa je docker rm idealen za ciljno in nadzorovano brisanje posameznih kontejnerjev, bodisi za testiranje, razvoj ali druge posebne potrebe.
Kako odstraniti slike Dockerja
Dockerjeve slike so gradniki kontejnerjev. Sčasoma lahko imajo številne različne različice in oznake. Ko ustvarite ali posodobite nove slike, pogosto ostanejo stare ali neuporabljene slike, imenovane »dangling«. Te zasedajo prostor na disku v vašem sistemu in lahko vplivajo na zmogljivost, še posebej če je takih slik veliko.
Z Dockerjem prune lahko poiščete in odstranite slike, ki se ne uporabljajo več:
docker image prune [Options]bashMožne možnosti so na primer:
-a,--all: Ta možnost ne odstrani le slike brez povezave, temveč tudi neuporabljene slike. Neuporabljene slike so tiste, ki nimajo več oznak in na katere zato ni mogoče neposredno sklicevati z oznakami.
docker image prune -abash-f,--force: Docker privzeto zahteva potrditev, preden se slike dejansko izbrišejo. Z-fali--forcelahko ta korak potrditve preskočite in čiščenje izvedete takoj.
docker image prune -fbashKako odstraniti vse slike Dockerja
Prav tako lahko hitro in temeljito počistite vse slike Dockerja v sistemu, ki jih ne potrebujete več. Za učinkovito uporabo Dockerja prune najprej odprite terminal ali ukazno vrstico in vnesite naslednji ukaz:
docker image prune -a --forcebashPreden začnete s čiščenjem, se prepričajte, katere slike bodo odstranjene. Možnost -a lahko izbriše neuporabljene slike, ki jih morda še potrebujete.
Kako odstraniti Dockerjeve 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 nepotrebnem porabljajo vire.
docker volume prunebashTa ukaz poišče vse prostore, ki nimajo aktivnih kontejnerjev. Prikazal se bo seznam prostorov, ki so predlagani za odstranitev, pred izvedbo čiščenja pa je potrebno potrditev.
Nasprotno pa je ukaz docker volume rm namenjen izključno odstranjevanju posameznih Dockerjevih volumnov. To je lahko koristno, če točno veste, kateri volumen želite izbrisati, ne glede na to, ali ga trenutno uporablja kateri od kontejnerjev. Za odstranitev določenega Dockerjevega volumna uporabite ukaz docker volume rm, ki mu sledi ime ali ID volumna:
docker volume rm volume_namebashŠe enkrat se prepričajte, da poznate ime ali ID zbirke, ki jo želite izbrisati, saj ta ukaz podatke trajno izbriše in tega ni mogoče preklicati.
Kako odstraniti omrežja Dockerja
V Dockerju so omrežja temeljna sestavina, ki omogoča komunikacijo med kontejnerji, ne glede na to, ali se nahajajo na istem gostitelju ali so razporejeni po več gostiteljih. Omrežja v Dockerju ostanejo ohranjena tudi po tem, ko so kontejnerji zaključeni ali odstranjeni. Sčasoma lahko to privede do kopičenja neuporabljanih omrežij, ki po nepotrebnem porabljajo vire. Ukaz docker prune network je preprost način za prepoznavanje in odstranjevanje teh neuporabljanih omrežij.
Ukaz ima naslednjo obliko:
docker network prune [OPTIONS]bashDocker ustvari seznam vseh omrežij, ki jih aktivni kontejnerji ne uporabljajo več ali na katera ni več sklicev. Pred dejanskim odstranitvijo omrežij se zahteva potrditev.
Najboljše prakse za Docker prune
- Avtomatsko čiščenje: Uporabljajte avtomatizirane skripte ali orodja za redno čiščenje Dockerjevih slik, kontejnerjev in prostora, ki jih ne potrebujete več. S tem ohranjate urejeno okolje in optimizirate zmogljivost.
- Varnostne popravke in posodobitve: Redno preverjajte varnostne posodobitve in popravke za Dockerjeve motorje, gostiteljske operacijske sisteme in vse Dockerjeve slike. Posodabljanje teh komponent pomaga zmanjšati morebitne varnostne ranljivosti.
- Spremljanje in beleženje: Uporabite orodja za spremljanje in beleženje, da spremljate zmogljivost kontejnerjev, zaznavate nepričakovane dogodke in spodbujate proaktivno vzdrževanje.
- Zunanje varnostno kopiranje: Vzpostavite rutine za zunanje varnostno kopiranje pomembnih podatkov iz Dockerjevih kontejnerjev, na primer redno varnostno kopiranje vsebine baz podatkov ali konfiguracijskih datotek.
- Ročni pregled pred odstranitvijo: Pred odstranitvijo določenih virov pazljivo preverite, ali jih še potrebujete. S tem boste zmanjšali tveganje za naključno izgubo podatkov ali prekinitve tekočih procesov.
Če šele začenjate z Dockerjem, vam priporočamo, da si preberete naš izčrpen vodnik po Dockerju.