Kontit vievät levytilaa ja re­surs­se­ja isän­tä­jär­jes­tel­mäs­sä­si. Pois­ta­mal­la tar­peet­to­mat kontit voit vapauttaa arvokasta tal­len­nus­ti­laa ja parantaa jär­jes­tel­män suo­ri­tus­ky­kyä.

Milloin Docker-kontit tulisi poistaa?

Docker-kontit ovat erillisiä, suo­ri­tet­ta­via yksiköitä, jotka si­säl­tä­vät so­vel­luk­sia ja niiden riip­pu­vuuk­sia. Monissa ti­lan­teis­sa on järkevää poistaa Docker-kontteja, jotta Docker-ympäristö olisi mah­dol­li­sim­man tehokas, tur­val­li­nen ja hal­lit­ta­vis­sa.

En­sin­nä­kin sinun tulisi poistaa kontit, kun ne ovat täyt­tä­neet teh­tä­vän­sä. Kun kontti on suo­rit­ta­nut sille mää­ri­te­tyn tehtävän tai prosessin on­nis­tu­nees­ti, ei ole järkevää pitää sitä ym­pä­ris­tös­sä­si. Näin vältetään tilanne, jossa käyt­tä­mät­tö­mät kontit sitovat re­surs­se­ja ja vievät tilaa tar­peet­to­mas­ti.

On myös hyvä poistaa kontit, joita ei ole ak­tii­vi­ses­ti käytössä tai joita ei ole päi­vi­tet­ty pitkään aikaan. Tämä on erityisen tärkeää tur­val­li­suus­ris­kien mi­ni­moi­mi­sek­si, sillä van­hem­mis­sa konteissa voi olla van­hen­tu­nei­ta oh­jel­mis­to­ver­sioi­ta tai tie­to­tur­va-aukkoja.

Jos olet huo­lis­sa­si jonkin kontin tur­val­li­suu­des­ta tai epäilet, että sen tur­val­li­suus on vaa­ran­tu­nut, sinun tulee poistaa se vä­lit­tö­mäs­ti. Sama koskee kontteja, joita ei voida käyn­nis­tää ris­ti­rii­to­jen tai muiden ongelmien vuoksi.

Kuinka poistaa yksi tai useampi Docker-kontti

Yhden tai useamman tietyn Docker-kontin pois­ta­mi­nen on ta­val­li­nen toi­men­pi­de, kun Docker-isän­tä­ko­neel­ta halutaan poistaa tar­peet­to­mia tai käyt­tä­mät­tö­miä kontteja.

Vaihe 1: Luettele konttien tun­nis­teet tai nimet

Ensin sinun on sel­vi­tet­tä­vä niiden konttien tunnukset tai nimet, jotka haluat poistaa. Voit käyttää seuraavaa komentoa näyt­tääk­se­si luettelon kaikista käynnissä olevista ja py­säy­te­tyis­tä konteista:

docker ps -a
bash

Vaihe 2: Poista säiliö

Voit kir­joit­taa konttien tun­nis­teet tai nimet vä­li­lyön­nil­lä ero­tet­tui­na suoraan docker rm -komennon perään:

docker rm container_id_or_name1 container_id_or_name2
bash

Kuinka poistaa Docker-kontti, kun ohjelma suljetaan

Jos haluat poistaa kontin au­to­maat­ti­ses­ti sen lo­pe­tet­tua, aseta lippu --rm, kun käyn­nis­tät kontin ko­men­nol­la docker run. Tämä lippu aiheuttaa sen, että kontti pois­te­taan au­to­maat­ti­ses­ti heti, kun se on valmis.

docker run --rm image_name
bash

Kuinka poistaa kaikki käynnissä olevat Docker-kontit

On myös mah­dol­lis­ta poistaa kaikki suljetut kontit kerralla suo­dat­ta­mal­la kontit niiden tilan mukaan ja pois­ta­mal­la ne rm -ko­men­nol­la.

Vaihe 1: Luettele suljetut kontit

Vaih­toeh­dol­la -f status=exited voit suodattaa kont­ti­luet­te­lon niin, että näkyvissä ovat vain suljetut kontit.

docker ps -a -f status=exited
bash

Vaihe 2: Poista käynnissä olevat kontit

Käytämme edellisen vaiheen tulosta saa­dak­sem­me lo­pe­tet­tu­jen konttien tun­nis­teet ja välitämme ne suoraan docker rm -ko­men­nol­le.

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

Kuinka poistaa kaikki Docker-kontit, joissa on useampi kuin yksi suodatin

Voit poistaa Docker-kontit, joissa on useampi kuin yksi suodatin, käyt­tä­mäl­lä komentoa docker ps yhdessä suo­da­tin­vaih­toeh­to­jen kanssa ja vä­lit­tä­mäl­lä tulosteen ko­men­nol­le docker rm.

Vaihe 1: Luettele säiliöt suo­dat­ti­mien avulla

En­sin­nä­kin syötämme komennon docker ps suo­da­tus­a­se­tuk­si­neen saa­dak­sem­me luettelon kont­teis­ta ha­lut­tu­jen kri­tee­rien mu­kai­ses­ti. created on toinen va­lit­ta­vis­sa oleva tila exited-tilan ohella. Kontit, joiden tila on created, ovat kontteja, jotka on luotu mutta joita ei ole vielä suo­ri­tet­tu.

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

Vaihe 2: Poista Docker-kontti

Aivan kuten edel­li­ses­sä esi­mer­kis­sä, välitämme tuloksen arvoon docker rm.

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

Kuinka poistaa Docker-kontteja tietyn kaavan mukaan

Kaikkien tietyn mallin mukaisien Docker-konttien etsiminen ja niiden pois­ta­mi­nen ko­men­to­jen awk, xargs ja docker rm avulla on tehokas tapa poistaa kontteja va­li­koi­vas­ti.

Vaihe 1: Luettele kaikki säiliöt, joissa on kuvio

Jos käytät komentoa docker ps -a yhdessä komennon grep kanssa, saat näkyviin kaikki kontit, joiden nimet tai tun­nis­teet vastaavat tiettyä mallia. Voit esi­mer­kik­si luetella kaikki kontit, joiden nimet alkavat merk­ki­jo­nol­la ”test-”:

docker ps -a | grep "test-"
bash

Vaihe 2: Poista Docker-kontit

Komenolla awk voit valita tu­los­te­tus­ta tu­lok­ses­ta tiettyjä sa­rak­kei­ta. Tässä ta­pauk­ses­sa haluamme poimia en­sim­mäi­sen sarakkeen, joka sisältää konttien tun­nis­teet. Voimme käyttää xargs vä­lit­tääk­sem­me tun­nis­teet ko­men­nol­le docker rmi ja pois­taak­sem­me Docker-kontit.

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

Kuinka pysäyttää ja poistaa kaikki Docker-kontit

Voit pysäyttää ja poistaa kaikki jär­jes­tel­mäs­sä­si olevat ak­tii­vi­set ja pas­sii­vi­set kontit kerralla. Tämä voi olla hyö­dyl­lis­tä, jos haluat puhdistaa Docker-ym­pä­ris­tö­si pe­rus­teel­li­ses­ti.

Vaihe 1: Luettele kaikki säiliöt

Kirjoita seuraava komento tar­kis­taak­se­si konttien luettelon:

docker ps -a
bash

Vaihe 2: Pysäytä säiliöt

Kun olet valmis, lähetä komento numeroon docker stop. Tämä pysäyttää kaikki kontit.

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

Vaihe 3: Poista Docker-kontit

Kun kaikki kontit on py­säy­tet­ty, voit poistaa ne ko­men­nol­la docker rm:

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

Toisin kuin ta­val­li­set Docker-kontit, Docker-konttien volyymit ovat me­ka­nis­me­ja, jotka mah­dol­lis­ta­vat tietojen py­sy­vyy­den sekä niiden jakamisen konttien ja isän­tä­jär­jes­tel­män välillä.

Di­gi­taa­li­ses­ta op­paas­tam­me löydät muita Docker-oppaita, joissa kerrotaan muun muassa, miten Docker-tal­len­nus­ti­la pois­te­taan ja miten Docker-kuva pois­te­taan.

Siirry pää­va­lik­koon