Docker prune poistaa tar­peet­to­mat kohteet, kuten py­säy­te­tyt kontit, käyt­tä­mät­tö­mät levyt sekä vanhat verkot ja kuvat. Tämä auttaa op­ti­moi­maan kiin­to­le­vy­ti­lan käyttöä ja vapauttaa tal­len­nus­ti­laa.

Mikä on Docker prune?

Docker prune tai system prune on hyö­dyl­li­nen työkalu, jonka avulla voit jär­jes­tel­mäl­li­ses­ti puhdistaa tar­peet­to­mik­si jääneet Docker-resurssit ja vapauttaa muistia. Jos Docker-kontteja, -kuvia, -verkkoja ja -le­vy­osioi­ta ei käytetä pitkään aikaan, ne voivat viedä huo­mat­ta­van määrän levytilaa. prune avulla voit poistaa nämä käyt­tä­mät­tö­mät resurssit nopeasti, jolloin jär­jes­tel­mä­si pysyy siistinä ja toimii parhaalla mah­dol­li­sel­la tavalla.

Eri­tyi­ses­ti ke­hi­ty­sym­pä­ris­töis­sä, joissa uusia kontteja luodaan ja testataan usein, voi kertyä huo­mat­ta­va määrä van­hen­tu­nei­ta objekteja. Docker prune poistaa te­hok­kaas­ti paitsi käyt­tä­mät­tö­mät kontit ja kuvat myös verkot ja levyt, joita ei enää tarvita. Tämä vir­ta­vii­vais­taa Docker-re­surs­sien hallintaa ja minimoi jär­jes­tel­män yli­kuor­mit­tu­mi­sen ja se­ka­vuu­den riskin.

Mihin Docker prune käytetään?

Komento prune sopii moniin ti­lan­tei­siin Docker-työs­ken­te­lys­sä. Alla on lueteltu neljä tyy­pil­lis­tä käyt­tö­ta­paus­ta.

Työpro­ses­sien op­ti­moin­ti: Docker-ym­pä­ris­tö­jä käytetään usein ke­hi­tys­työs­sä, tes­tauk­ses­sa ja tuo­tan­to­käy­tös­sä. Ilman sään­nöl­lis­tä puh­dis­tus­ta tämä voi johtaa tar­peet­to­mien re­surs­sien nopeaan ker­ty­mi­seen. Tällainen yli­kuor­mi­tus ei ai­noas­taan lisää muistin käyttöä, vaan voi myös heikentää jär­jes­tel­män suo­ri­tus­ky­kyä. Pois­ta­mal­la käyt­tä­mät­tö­mät resurssit Docker prune mah­dol­lis­taa jär­jes­tel­mä­re­surs­sien te­hok­kaam­man käytön. Tämä on erityisen tärkeää pil­vi­poh­jai­sis­sa ym­pä­ris­töis­sä, joissa kus­tan­nuk­set nousevat tallennus- ja las­ken­ta­re­surs­sien kysynnän kasvaessa.

Paranna tie­to­tur­vaa: Tar­peet­to­mat ja van­hen­tu­neet Docker-resurssit voivat aiheuttaa tie­to­tur­va­ris­ke­jä. Docker prune poistaa käyt­tä­mät­tö­mät kontit, kuvat, verkot ja levyt, mikä vähentää riskiä siitä, että van­hen­tu­neet ja mah­dol­li­ses­ti haa­voit­tu­vat kom­po­nen­tit jäävät suo­jaa­mat­ta. Puhdas Docker-ympäristö minimoi hyök­käys­koh­tei­den määrän ja parantaa IT-infra­struk­tuu­ri­si yleistä tie­to­tur­va­ta­soa.

Suo­ri­tus­ky­vyn pa­ran­ta­mi­nen: Yli­kuor­mi­tet­tu Docker-ympäristö voi heikentää jär­jes­tel­män suo­ri­tus­ky­kyä ku­lut­ta­mal­la turhaan re­surs­se­ja, kuten pro­ses­so­ria ja muistia. Sään­nöl­li­nen puhdistus Docker prune avulla vapauttaa levytilaa ja tehostaa konttien hallintaa ja suo­rit­ta­mis­ta. Tämä lyhentää la­tausai­ko­ja huo­mat­ta­vas­ti, nopeuttaa so­vel­lus­ten käyt­töön­ot­toa ja parantaa jär­jes­tel­män yleistä rea­goin­ti­ky­kyä.

Yk­sin­ker­tais­tet­tu ylläpito: Docker prune sään­nöl­li­nen käyttö yk­sin­ker­tais­taa mer­kit­tä­väs­ti Docker-ym­pä­ris­tön ylläpitoa. Pois­ta­mal­la käyt­tä­mät­tö­mät resurssit se vähentää ke­hit­tä­jien hal­lin­ta­teh­tä­vien mo­ni­mut­kai­suut­ta. Tämä helpottaa ak­tii­vis­ten ja olen­nais­ten Docker-kom­po­nent­tien seurantaa ja nopeuttaa vian­mää­ri­tys­tä. Näin ollen tiimit säästävät aikaa hal­lin­nol­li­sis­sa teh­tä­vis­sä ja voivat keskittyä enemmän so­vel­lus­ten ke­hit­tä­mi­seen ja pa­ran­ta­mi­seen sen sijaan, että jou­tui­si­vat kä­sit­te­le­mään tar­peet­to­mia re­surs­se­ja.

Mikä on Docker prune:n syntaksi?

Onko sinulla Docker-ympäristö ja haluatko puhdistaa re­surs­se­ja levytilan va­paut­ta­mi­sek­si ja hallinnan yk­sin­ker­tais­ta­mi­sek­si? Siinä ta­pauk­ses­sa suorita seuraava komento prune palvelun pois­ta­mi­sek­si:

docker system prune
bash

Ole­tus­a­se­tuk­se­na Docker tunnistaa py­säy­te­tyt kontit, käyt­tä­mät­tö­mät kuvat, verkot ja levyt, jotka voidaan poistaa, ja pyytää vah­vis­tus­ta ennen pois­ta­mis­ta. Jatka kir­joit­ta­mal­la y ja pai­na­mal­la Enter-näppäintä. Vaih­toeh­toi­ses­ti voit käyttää vaih­toeh­toa -f ohit­taak­se­si vah­vis­tuk­sen ja suo­rit­taak­se­si puh­dis­tuk­sen vä­lit­tö­mäs­ti:

docker system prune -f
bash

Vinkki: Ennen Docker prune käyttöä on hyvä tarkistaa, mitkä Docker-resurssit jär­jes­tel­mäs­sä tällä hetkellä ovat käy­tet­tä­vis­sä. Suorita seuraavat komennot saa­dak­se­si luettelon kaikista kont­teis­ta, kuvista, verkoista ja le­vy­alueis­ta:

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

Docker prune asetukset

Seu­raa­vas­sa tau­lu­kos­sa on yh­teen­ve­to kohdan docker system prune eri vaih­toeh­dois­ta.

Vaih­toeh­to Kuvaus
--all, -a Poistaa kaikki käyt­tä­mät­tö­mät Docker-resurssit.
--force, -f Suorittaa puh­dis­tuk­sen ilman käyttäjän vah­vis­tus­ta.
--volumes Poistaa käyt­tä­mät­tö­mät levyt.
--filter, -f Mah­dol­lis­taa pois­tet­ta­vien re­surs­sien suo­dat­ta­mi­sen kri­tee­rien mukaan.
--help Näyttää ohjeet komennon käytöstä.

Kuinka käyttää Docker prune -komentoa

Docker tarjoaa erilaisia komentoja, joiden avulla tiettyjä re­surs­si­tyyp­pe­jä voidaan puhdistaa koh­den­ne­tus­ti. Tämä antaa sinulle jous­ta­vuu­den hallita tarkasti, mitkä resurssit pois­te­taan.

Docker prune --filter

Suo­dat­ti­men avulla voit hallita pois­tet­ta­vien re­surs­sien valintaa, kuten kontteja, kuvia, verkkoja ja levyjä. Tästä on hyötyä ke­hi­ty­sym­pä­ris­töis­sä, joissa luodaan helposti paljon vä­liai­kai­sia re­surs­se­ja, jotka unohtuvat nopeasti.

Yleinen syntaksi on seuraava:

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

Suo­da­tin­vaih­toeh­to­ja ovat muun muassa:

  • until: Suodattaa resurssit niiden luon­ti­päi­vä­mää­rän pe­rus­teel­la. Tässä <duration> voi olla nu­mee­ri­nen arvo, johon on liitetty yksikkö, kuten h (tuntia), m (minuuttia) tai s (sekuntia).
docker <command> prune --filter "until=<duration>"
bash

Esimerkki: Poista kaikki py­säy­te­tyt kontit, jotka ovat yli 24 tuntia vanhoja

docker container prune --filter "until=24h"
bash
  • label: Suodattaa re­surs­se­ja niiden Docker-tun­nis­tei­den pe­rus­teel­la
docker <command> prune --filter "label=<label>"
bash

Esimerkki: Poista kaikki käyt­tä­mät­tö­mät levyt, joiden tunniste on mylabel

docker volume prune --filter "label=mylabel"
bash
  • dangling: Suodattaa resurssit, joita kontti ei enää käytä
docker <command> prune --filter "dangling=true"
bash

Esimerkki: Poista kaikki kuvat, joita ei enää käytetä (roikkuvat kuvat)*

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

Edellä mai­nit­tu­jen pää­suo­dat­ti­mien lisäksi on olemassa myös re­surs­si­tyy­pis­tä riippuvia tarkempia suo­da­tin­vaih­toeh­to­ja:

  • before ja since kuville: Suodattaa kuvat niiden luon­ti­päi­vä­mää­rän pe­rus­teel­la, joko ennen tiettyä ajan­koh­taa tai sen jälkeen
  • exited kontteja varten: Suodattaa kontit niiden lo­pe­tus­ti­lan pe­rus­teel­la (esi­mer­kik­si exited=0 on­nis­tu­nees­ti lo­pe­te­tuil­le konteille)

Kuinka poistaa Docker-re­surs­se­ja

Vaihe 1: Avaa jär­jes­tel­mäs­sä­si pääte tai ko­men­to­ri­vi.

Vaihe 2: Suorita Docker prune jär­jes­tel­män puh­dis­ta­mi­sek­si:

docker {resource} prune
bash

Korvaa {resource} niiden re­surs­sien tyypillä, jotka haluat puhdistaa. Kel­vol­li­sia arvoja ovat container, image, volume ja network.

Kuinka poistaa Docker-kontteja

Ole­tus­a­se­tuk­si­na Docker ei vapauta kontteja au­to­maat­ti­ses­ti niiden elin­kaa­ren päätyttyä. On tärkeää tarkistaa sään­nöl­li­ses­ti py­säy­te­tyt kontit ja puhdistaa ne tarpeen mukaan, jotta varatut resurssit va­pau­tu­vat käynnissä oleville kont­teil­le. Tähän on kaksi tapaa.

  • docker rm: Komento docker rm on tar­koi­tet­tu yhden tai useamman Docker-kontin ma­nu­aa­li­seen pois­ta­mi­seen. Jos tiedät tar­kal­leen, mitkä kontit haluat poistaa, tämä on sopiva menetelmä. Sinun on mää­ri­tet­tä­vä ni­men­omai­ses­ti pois­tet­ta­vien konttien tunnukset tai nimet, jolloin voit poistaa ym­pä­ris­tös­tä­si vain tietyt kontit vai­kut­ta­mat­ta muihin.

Tässä on esimerkki nimillä container1 ja container2 va­rus­tet­tu­jen konttien pois­ta­mi­ses­ta:

docker rm container1 container2
bash
  • docker container prune: Sen sijaan komento docker container prune on tar­koi­tet­tu useiden py­säy­tet­ty­jen konttien pois­ta­mi­seen kerralla. Tämä menetelmä sopii erityisen hyvin tilan va­paut­ta­mi­seen nopeasti ja te­hok­kaas­ti pois­ta­mal­la kaikki py­säy­te­tyt kontit, joissa ei tällä hetkellä ole käynnissä olevia pro­ses­se­ja.
docker container prune
bash

Tässä näkyvät kaikki py­säy­te­tyt kontit, ja Docker pyytää vah­vis­tus­ta ennen niiden pois­ta­mis­ta. Tämä on erittäin kätevää ym­pä­ris­töis­sä, joissa luodaan paljon vä­liai­kai­sia kontteja, jotka myöhemmin käyvät tar­peet­to­mik­si.

Docker-ym­pä­ris­tön päi­vit­täi­ses­sä hal­lin­nas­sa ja yl­lä­pi­dos­sa on suo­si­tel­ta­vaa käyttää sään­nöl­li­ses­ti docker container prune py­säy­tet­ty­jen konttien au­to­maat­ti­seen puh­dis­ta­mi­seen. Tämä menetelmä säästää aikaa ja varmistaa, ettei tar­peet­to­mat resurssit heikennä jär­jes­tel­män suo­ri­tus­ky­kyä. Sen sijaan docker rm sopii erin­omai­ses­ti tiettyjen konttien pois­ta­mi­seen koh­den­ne­tus­ti ja hal­li­tus­ti, olipa kyseessä sitten testaus, kehitys tai muut eri­tyis­tar­peet.

Kuinka poistaa Docker-kuvat

Docker-kuvat ovat konttien ra­ken­nus­pa­li­koi­ta. Niistä voi ajan mittaan kertyä useita eri versioita ja tun­nis­tei­ta. Kun luot tai päivität uusia kuvia, jäljelle jää usein vanhoja tai käyt­tä­mät­tö­miä kuvia, joita kutsutaan ”dangling”-kuviksi. Ne vievät jär­jes­tel­män levytilaa ja voivat heikentää suo­ri­tus­ky­kyä, etenkin jos tällaisia kuvia on paljon.

Docker prune avulla voit tunnistaa ja poistaa kuvat, joita ei enää käytetä:

docker image prune [Options]
bash

Mah­dol­li­sia vaih­toeh­to­ja ovat esi­mer­kik­si:

  • -a, --all: Tämä vaih­toeh­to poistaa paitsi ir­ral­li­set kuvat myös käyt­tä­mät­tö­mät kuvat. Käyt­tä­mät­tö­miä kuvia ovat ne, joilla ei enää ole tun­nis­tei­ta ja joihin ei siten voida viitata suoraan tun­nis­tei­den avulla.
docker image prune -a
bash
  • -f, --force: Ole­tus­a­se­tuk­se­na Docker pyytää vah­vis­tus­ta ennen kuvien var­si­nais­ta pois­ta­mis­ta. Va­lit­se­mal­la -f tai --force voit ohittaa tämän vah­vis­tus­vai­heen ja suorittaa puh­dis­tuk­sen vä­lit­tö­mäs­ti.
docker image prune -f
bash

Kuinka poistaa kaikki Docker-kuvat

Voit myös poistaa jär­jes­tel­mäs­tä­si nopeasti ja pe­rus­teel­li­ses­ti kaikki Docker-kuvat, joita et enää tarvitse. Käyt­tääk­se­si Docker prune te­hok­kaas­ti, avaa ensin ter­mi­naa­li tai ko­men­to­ke­ho­te ja kirjoita seuraava komento:

docker image prune -a --force
bash

Tarkista ennen puh­dis­tuk­sen aloit­ta­mis­ta, mitkä kuvat pois­te­taan. Ase­tuk­sel­la -a voidaan poistaa käyt­tä­mät­tö­miä kuvia, joita saatat vielä tarvita.

Kuinka poistaa Docker-tal­len­nus­le­vyt

Volyymit ovat pysyviä ja säi­lyt­tä­vät tiedot, vaikka niihin liittyvä kontti ei enää olisi käynnissä. Ajan myötä nämä volyymit voivat kasvaa ja kuluttaa re­surs­se­ja tar­peet­to­mas­ti.

docker volume prune
bash

Tämä komento etsii kaikki levyt, joilla ei ole ak­tii­vi­sia kontteja. Saat luettelon pois­tet­ta­vak­si eh­do­te­tuis­ta levyistä, ja sinun on vah­vis­tet­ta­va toi­men­pi­de ennen puh­dis­tuk­sen suo­rit­ta­mis­ta.

Sen sijaan komento docker volume rm poistaa ni­me­no­maan yk­sit­täi­siä Docker-tal­len­nus­le­vy­jä. Tästä voi olla hyötyä, jos tiedät tar­kal­leen, minkä tal­len­nus­le­vyn haluat poistaa, riip­pu­mat­ta siitä, onko se par­hail­laan jonkin kontin käytössä. Pois­taak­se­si tietyn Docker-tal­len­nus­le­vyn, käytä komentoa docker volume rm ja kirjoita sen perään tal­len­nus­le­vyn nimi tai tunniste:

docker volume rm volume_name
bash

Varmista jälleen, että tiedät pois­tet­ta­van levyn nimen tai tun­nis­teen, sillä tämä komento poistaa tiedot lo­pul­li­ses­ti eikä sitä voi peruuttaa.

Kuinka poistaa Docker-verkot

Doc­ke­ris­sa verkot ovat keskeinen osa, jonka avulla kontit voivat kom­mu­ni­koi­da keskenään riip­pu­mat­ta siitä, si­jait­se­vat­ko ne samalla isän­tä­ko­neel­la vai useilla eri isän­tä­ko­neil­la. Docker-verkot säilyvät myös sen jälkeen, kun kontit on suljettu tai poistettu. Ajan myötä tämä voi johtaa käyt­tä­mät­tö­mien verkkojen ker­ty­mi­seen, jotka ku­lut­ta­vat re­surs­se­ja tar­peet­to­mas­ti. Komento docker prune network on helppo tapa tunnistaa ja poistaa nämä käyt­tä­mät­tö­mät verkot.

Komento on seu­raa­vas­sa muodossa:

docker network prune [OPTIONS]
bash

Docker luo luettelon kaikista verkoista, joita ak­tii­vi­set kontit eivät enää käytä tai joihin ei enää viitata. Ennen verkkojen var­si­nais­ta pois­ta­mis­ta pyydetään vahvistus.

Docker prune:n parhaat käytännöt

  • Au­to­maat­ti­nen puhdistus: Käytä au­to­maat­ti­sia ko­men­to­sar­jo­ja tai työkaluja puh­dis­ta­maan sään­nöl­li­ses­ti Docker-kuvat, kontit ja levyt, joita ei enää tarvita. Tämä pitää ym­pä­ris­tön siistinä ja optimoi suo­ri­tus­ky­vyn.
  • Tur­va­päi­vi­tyk­set ja kor­jauk­set: Tarkista sään­nöl­li­ses­ti Docker-moot­to­rei­den, isän­tä­käyt­tö­jär­jes­tel­mien ja kaikkien Docker-kuvien tur­va­päi­vi­tyk­set ja kor­jauk­set. Näiden kom­po­nent­tien pitäminen ajan tasalla auttaa mi­ni­moi­maan mah­dol­li­set tie­to­tur­va-aukot.
  • Valvonta ja lokit: Käytä valvonta- ja lo­ki­työ­ka­lu­ja konttien suo­ri­tus­ky­vyn val­von­taan, odot­ta­mat­to­mien ta­pah­tu­mien ha­vait­se­mi­seen ja en­na­koi­van ylläpidon edis­tä­mi­seen.
  • Ulkoinen var­muus­ko­pioin­ti: Luo rutiinit Docker-konttien tärkeiden tietojen ul­koi­sel­le var­muus­ko­pioin­nil­le, kuten tie­to­kan­nan sisällön tai kon­fi­gu­raa­tio­tie­dos­to­jen sään­nöl­li­sel­le var­muus­ko­pioin­nil­le.
  • Ma­nu­aa­li­nen tarkistus ennen pois­ta­mis­ta: Tarkista huo­lel­li­ses­ti, etkö enää tarvitse tiettyjä re­surs­se­ja, ennen kuin poistat ne. Tämä minimoi va­hin­gos­sa ta­pah­tu­van tietojen me­ne­tyk­sen tai käynnissä olevien pro­ses­sien kes­key­tyk­sen riskin.
Vinkki

Jos olet vasta aloit­ta­mas­sa Docker-käyttöä, suo­sit­te­lem­me lukemaan kattavan Docker-oppaamme.

Siirry pää­va­lik­koon