Kako odstraniti Dockerjeve kontejnerje in sprostiti vire
Kontejnerji zavzemajo prostor na disku in vire v gostiteljskem sistemu. Z odstranitvijo kontejnerjev, ki jih ne potrebujete več, lahko sprostite dragoceni prostor za shranjevanje in izboljšate zmogljivost sistema.
Kdaj je treba odstraniti Dockerjeve kontejnerje?
Dockerjevi kontejnerji so ločene, izvedljive enote, ki vsebujejo aplikacije in njihove odvisnosti. V nekaterih primerih je smiselno odstraniti Dockerjeve kontejnerje, da bo vaše Dockerjevo okolje čim bolj učinkovito, varno in enostavno za upravljanje.
Najprej in predvsem morate odstraniti kontejnerje, ko so izpolnili svoj namen. Ko kontejner uspešno zaključi svojo nalogo ali proces, nima smisla, da ga ohranite v svojem okolju. S tem preprečite, da bi neaktivni kontejnerji po nepotrebnem zasedali vire in prostor.
Prav tako je priporočljivo odstraniti kontejnerje, ki se trenutno ne uporabljajo ali ki že dolgo niso bili posodobljeni. To je še posebej pomembno za zmanjšanje varnostnih tveganj, saj lahko starejši kontejnerji vsebujejo zastarele različice programske opreme ali varnostne ranljivosti.
Če imate pomisleke glede varnosti kontejnerja ali sumite, da je ogrožen, ga morate takoj odstraniti. Enako velja za kontejnerje, ki jih zaradi konfliktov ali drugih težav ni mogoče zagnati.
Kako odstraniti enega ali več Dockerjevih kontejnerjev
Odstranjevanje enega ali več določenih Dockerjevih kontejnerjev je običajen postopek, ko gre za odstranjevanje nepotrebnih ali neaktivnih kontejnerjev z Dockerjevega gostitelja.
Korak 1: Navedite identifikatorje ali imena kontejnerjev
Najprej morate ugotoviti ID-je ali imena kontejnerjev, ki jih želite odstraniti. Za prikaz seznama vseh zagnanih in ustavljenih kontejnerjev lahko uporabite naslednji ukaz:
docker ps -abashKorak 2: Odstranite posodo
Za **ukazom docker rm** lahko preprosto vnesete ID-je ali imena kontejnerjev, ločene s presledki:
docker rm container_id_or_name1 container_id_or_name2bashKako odstraniti Dockerjev kontejner ob izhodu
Če želite kontejner samodejno odstraniti po njegovem zaključku, pri zagonu kontejnerja z ukazom docker run nastavite oznako --rm. Ta oznaka poskrbi, da se kontejner samodejno odstrani takoj, ko konča delovanje.
docker run --rm image_namebashKako odstraniti vse zaprte Docker-kontejnerje
Prav tako je mogoče vse zaprte kontejnerje odstraniti naenkrat, tako da jih filtrirate glede na njihov status in jih odstranite z ukazom rm.
Korak 1: Prikaži seznam zaprtih kontejnerjev
Z možnostjo -f status=exited lahko filtrirate seznam kontejnerjev, da se prikažejo le tisti, ki so se zaprli.
docker ps -a -f status=exitedbashKorak 2: Odstranite zaprte posode
Rezultat prejšnjega koraka uporabimo za pridobitev identifikacijskih številk zaprtih kontejnerjev in jih neposredno posredujemo ukazu docker rm.
docker rm $(docker ps -a -f status=exited -q)bashKako odstraniti vse Docker-kontejnerje z več kot enim filtrom
Dockerjeve kontejnerje z več kot enim filtrom lahko odstranite, če uporabite ukaz docker ps skupaj z možnostmi filtriranja in nato izhodne podatke posredujete ukazu docker rm.
1. korak: Prikaži zabojnike s filtri
Najprej vnesemo ukaz docker ps z možnostmi filtriranja, da pridobimo seznam kontejnerjev v skladu z želenimi merili. Poleg statusa »exited« je na voljo še status »created «. Kontejnerji s statusom »created« so tisti, ki so bili ustvarjeni, a še niso bili izvedeni.
docker ps -a -f status=exited -f status=createdbashKorak 2: Odstranite Dockerjev kontejner
Tako kot v zgornjem primeru izhodno vrednost prenesemo na docker rm.
docker rm $(docker ps -a -f status=exited -f status=created -q)bashKako odstraniti Dockerjeve kontejnerje po določenem vzorcu
Iskanje vseh Dockerjevih kontejnerjev, ki ustrezajo določenemu vzorcu, in njihovo odstranjevanje s pomočjo awk, xargs in docker rm je učinkovit način za selektivno odstranjevanje kontejnerjev.
Korak 1: Napišite seznam vseh posod z vzorcem
Če uporabite ukaz docker ps -a v kombinaciji z ukaz grep, boste dobili vse kontejnerje z imeni ali oznakami, ki ustrezajo določenemu vzorcu. Na primer, lahko prikažete vse kontejnerje, katerih imena se začnejo z »test-«:
docker ps -a | grep "test-"bashKorak 2: Odstranite Dockerjeve kontejnerje
Z ukazom awk lahko izberete določene stolpce iz izhodnih rezultatov. V tem primeru želimo izločiti prvi stolpec, ki vsebuje identifikacijske številke kontejnerjev. Z xargs lahko te identifikacijske številke posredujemo ukazu docker rmi in odstranimo Dockerjeve kontejnerje.
docker ps -a | grep "test-" | awk '{print $1}' | xargs docker rmibashKako ustaviti in odstraniti vse Docker-kontejnerje
Naenkrat lahko zaustavite in odstranite vse aktivne in neaktivne kontejnerje v sistemu. To je lahko koristno, če želite temeljito počistiti svoje okolje Docker.
Korak 1: Napišite seznam vseh posod
Vnesite naslednji ukaz, da preverite seznam kontejnerjev:
docker ps -abashKorak 2: Ustavite zabojnike
Ko boste pripravljeni, preusmerite izhod na docker stop. S tem boste ustavili vse kontejnerje.
docker stop $(docker ps -a -q)bashKorak 3: Odstranite Dockerjeve kontejnerje
Ko so vsi kontejnerji ustavljeni, jih lahko odstranite z ukazom docker rm:
docker rm $(docker ps -a -q)bashV nasprotju z običajnimi Dockerjevimi kontejnerji so Dockerjevi kontejnerski diski mehanizmi, ki omogočajo trajno shranjevanje podatkov ter njihovo izmenjavo med kontejnerji in gostiteljskim sistemom.
V našem digitalnem vodniku najdete še druge navodila za Docker, med drugim tudi navodila za odstranitev Dockerjevega prostora in izbris Dockerjeve slike.