Kon­t­ei­ne­riai užima vietos diske ir naudoja pag­rin­di­nės sistemos išteklius. Pašalinę ne­be­rei­ka­lin­gus kon­t­ei­ne­rius, galite at­lais­vin­ti vertingos saugyklos vietos ir pagerinti sistemos našumą.

Kada reikėtų pašalinti „Docker“ kon­t­ei­ne­rius?

„Docker“ kon­t­ei­ne­riai – tai izoliuoti, pa­lei­džia­mi vienetai, kuriuose yra programos ir jų pri­klau­so­my­bės. Įvairiose si­tu­aci­jo­se verta pašalinti „Docker“ kon­t­ei­ne­rius, kad jūsų „Docker“ aplinka būtų kuo efek­ty­ves­nė, saugesnė ir lengviau valdoma.

Visų pirma, tu­rė­tu­mė­te pašalinti kon­t­ei­ne­rius, kai jie jau atliko savo funkciją. Kai kon­t­ei­ne­ris sėkmingai įvykdo konkrečią užduotį ar procesą, nėra prasmės jo palikti aplinkoje. Tai padeda išvengti, kad neaktyvūs kon­t­ei­ne­riai be reikalo eikvotų išteklius ir užimtų vietą.

Taip pat patartina pašalinti kon­t­ei­ne­rius, kurie šiuo metu ne­nau­do­ja­mi arba nebuvo at­nau­ji­na­mi ilgą laiką. Tai ypač svarbu siekiant sumažinti saugumo riziką, nes se­nes­niuo­se kon­t­ei­ne­riuo­se gali būti pa­se­nu­sios prog­ra­mi­nės įrangos versijos arba saugumo pa­žei­džia­mu­mai.

Jei turite abejonių dėl kon­t­ei­ne­rio saugumo arba įtariate, kad jis gali būti pažeistas, tu­rė­tu­mė­te jį ne­del­siant pašalinti. Tas pats galioja ir tiems kon­t­ei­ne­riams, kurių neįmanoma paleisti dėl konfliktų ar kitų problemų.

Kaip pašalinti vieną ar kelis „Docker“ kon­t­ei­ne­rius

Vieno ar kelių konkrečių „Docker“ kon­t­ei­ne­rių pa­ša­li­ni­mas yra įprastas veiksmas, kai reikia pašalinti ne­rei­ka­lin­gus arba ne­ak­ty­vius kon­t­ei­ne­rius iš „Docker“ šei­mi­nin­ko.

1 žingsnis: Iš­var­dy­ki­te kon­t­ei­ne­rių ID arba pa­va­di­ni­mus

Pir­miau­sia reikia sužinoti tų kon­t­ei­ne­rių, kuriuos norite pašalinti, ID arba pa­va­di­ni­mus. Norėdami per­žiū­rė­ti visų vei­kian­čių ir su­stab­dy­tų kon­t­ei­ne­rių sąrašą, galite naudoti šią komandą:

docker ps -a
bash

2 etapas: Išimkite indą

Po komandos „docker rm“ galite tiesiog įvesti kon­t­ei­ne­rių ID arba pa­va­di­ni­mus, atskirtus tar­pe­liais:

docker rm container_id_or_name1 container_id_or_name2
bash

Kaip pašalinti „Docker“ kon­t­ei­ne­rį išeinant

Norėdami, kad kon­t­ei­ne­ris būtų au­to­ma­tiš­kai pa­ša­lin­tas jam pa­si­bai­gus, pa­leis­da­mi jį komanda docker run nu­sta­ty­ki­te žymę --rm. Ši žymė užtikrina, kad kon­t­ei­ne­ris bus au­to­ma­tiš­kai pa­ša­lin­tas, vos tik jis baigs veikti.

docker run --rm image_name
bash

Kaip pašalinti visus uždarytus „Docker“ kon­t­ei­ne­rius

Taip pat galima iš karto pašalinti visus uždarytus kon­t­ei­ne­rius, juos atrinkus pagal būseną ir pašalinus naudojant komandą rm.

1 žingsnis: Iš­var­dy­ki­te uždarytus kon­t­ei­ne­rius

Pa­si­rin­kus -f status=exited parinktį, galite filtruoti kon­t­ei­ne­rių sąrašą, kad būtų rodomi tik uždaryti kon­t­ei­ne­riai.

docker ps -a -f status=exited
bash

2 žingsnis: Pa­ša­lin­ki­te iš­ei­nan­čius kon­t­ei­ne­rius

Naudodami anks­tes­nio žingsnio rezultatą, gauname uždarytų kon­t­ei­ne­rių ID ir per­duo­da­me juos tiesiai komandai docker rm “.

docker rm $(docker ps -a -f status=exited -q)
bash

Kaip pašalinti visus „Docker“ kon­t­ei­ne­rius, turinčius daugiau nei vieną filtrą

Galite pašalinti „Docker“ kon­t­ei­ne­rius, kuriems taikomas daugiau nei vienas filtras, jei naudodami docker ps komandą kartu su fil­t­ra­vi­mo pa­rink­ti­mis, o gautus re­zul­ta­tus per­duo­si­te docker rm komandai.

1 žingsnis: Kon­t­ei­ne­rių sąrašas su filtrais

Pir­miau­sia įvedame komandą docker ps su fil­t­ra­vi­mo pa­rink­ti­mis, kad gautume kon­t­ei­ne­rių sąrašą pagal norimus kri­te­ri­jus. „created“ yra dar viena pa­si­ren­ka­ma būsena, greta „exited“. Kon­t­ei­ne­riai su būsena „created“ yra tie, kurie buvo sukurti, bet dar nevykdomi.

docker ps -a -f status=exited -f status=created
bash

2 žingsnis: Pa­ša­lin­ki­te „Docker“ kon­t­ei­ne­rį

Kaip ir anks­tes­nia­me pavyzdyje, išvestį per­duo­da­me docker rm.

docker rm $(docker ps -a -f status=exited -f status=created -q)
bash

Kaip pašalinti „Docker“ kon­t­ei­ne­rius pagal nustatytą schemą

Visų Docker kon­t­ei­ne­rių, ati­tin­kan­čių tam tikrą šabloną, paieška ir jų pa­ša­li­ni­mas naudojant awk, xargs ir docker rm komandas yra veiks­min­gas būdas se­lek­ty­viai pašalinti kon­t­ei­ne­rius.

1 žingsnis: Su­da­ry­ki­te visų kon­t­ei­ne­rių, kuriuose yra šis raštas, sąrašą

Jei komandą docker ps -a naudosite kartu su grep, gausite visus kon­t­ei­ne­rius, kurių pa­va­di­ni­mai arba žymės atitinka nurodytą šabloną. Pa­vyz­džiui, galite išvardyti visus kon­t­ei­ne­rius, kurių pa­va­di­ni­mai prasideda žodžiu „test-“:

docker ps -a | grep "test-"
bash

2 žingsnis: Pa­ša­lin­ki­te „Docker“ kon­t­ei­ne­rius

Komanda awk leidžia pa­si­rink­ti konk­re­čius stul­pe­lius iš išvesties rezultatų. Šiuo atveju norime išgauti pirmąjį stulpelį, kuriame yra kon­t­ei­ne­rių ID. Galime naudoti xargs, kad per­duo­tu­me ID komandai docker rmi ir pa­ša­lin­tu­me „Docker“ kon­t­ei­ne­rius.

docker ps -a | grep "test-" | awk '{print $1}' | xargs docker rmi
bash

Kaip su­stab­dy­ti ir pašalinti visus „Docker“ kon­t­ei­ne­rius

Galite vienu metu su­stab­dy­ti ir pašalinti visus aktyvius bei ne­ak­ty­vius kon­t­ei­ne­rius savo sistemoje. Tai gali būti naudinga, jei norite išsamiai išvalyti savo „Docker“ aplinką.

1 žingsnis: Su­da­ry­ki­te visų kon­t­ei­ne­rių sąrašą

Įveskite šią komandą, kad per­žiū­rė­tu­mė­te kon­t­ei­ne­rių sąrašą:

docker ps -a
bash

2 žingsnis: Su­stab­dy­ki­te kon­t­ei­ne­rius

Kai būsite pasirengę, nu­kreip­ki­te išvestį į docker stop. Tai sustabdys visus kon­t­ei­ne­rius.

docker stop $(docker ps -a -q)
bash

3 žingsnis: Pa­ša­lin­ki­te „Docker“ kon­t­ei­ne­rius

Kai visi kon­t­ei­ne­riai bus su­stab­dy­ti, juos galėsite pašalinti naudodami komandą docker rm:

docker rm $(docker ps -a -q)
bash

Skir­tin­gai nuo įprastų „Docker“ kon­t­ei­ne­rių, „Docker“ kon­t­ei­ne­rių tomai yra me­cha­niz­mai, lei­džian­tys už­tik­rin­ti duomenų iš­sau­go­ji­mą ir jų da­li­ji­mą­si tarp kon­t­ei­ne­rių bei pri­iman­čio­sios sistemos.

Mūsų skait­me­ni­nia­me vadove rasite ir kitų „Docker“ pamokų, pa­vyz­džiui, kaip pašalinti „Docker“ tomą ir kaip ištrinti „Docker“ atvaizdą.

Go to Main Menu