# Docker prune -komennon käyttö – opas esimerkkeineen

Docker `prune` **poistaa tarpeettomat kohteet**, kuten pysäytetyt kontit, käyttämättömät levyt sekä vanhat verkot ja kuvat. Tämä auttaa optimoimaan kiintolevytilan käyttöä ja vapauttaa tallennustilaa.

## Mikä on Docker `prune`?

Docker `prune` tai `system prune` on hyödyllinen työkalu, jonka **avulla** voit **järjestelmällisesti puhdistaa** tarpeettomiksi jääneet Docker-resurssit ja vapauttaa muistia. Jos Docker-kontteja, -kuvia, -verkkoja ja -levyosioita ei käytetä pitkään aikaan, ne voivat viedä huomattavan määrän levytilaa. `prune` avulla voit poistaa nämä käyttämättömät resurssit nopeasti, jolloin järjestelmäsi pysyy siistinä ja toimii parhaalla mahdollisella tavalla.

Erityisesti **kehitysympäristöissä**, joissa uusia kontteja luodaan ja testataan usein, voi kertyä huomattava määrä vanhentuneita objekteja. Docker `prune` poistaa tehokkaasti paitsi käyttämättömät kontit ja kuvat myös verkot ja levyt, joita ei enää tarvita. Tämä virtaviivaistaa Docker-resurssien hallintaa ja minimoi järjestelmän ylikuormittumisen ja sekavuuden riskin.

## Mihin Docker `prune` käytetään?

Komento `prune` sopii moniin tilanteisiin Docker-työskentelyssä. Alla on lueteltu neljä tyypillistä käyttötapausta.

**Työprosessien optimointi:** Docker-ympäristöjä käytetään usein kehitystyössä, testauksessa ja tuotantokäytössä. Ilman säännöllistä puhdistusta tämä voi johtaa tarpeettomien resurssien nopeaan kertymiseen. Tällainen ylikuormitus ei ainoastaan lisää muistin käyttöä, vaan voi myös heikentää järjestelmän suorituskykyä. Poistamalla käyttämättömät resurssit Docker `prune` mahdollistaa järjestelmäresurssien tehokkaamman käytön. Tämä on erityisen tärkeää pilvipohjaisissa ympäristöissä, joissa kustannukset nousevat tallennus- ja laskentaresurssien kysynnän kasvaessa.

**Paranna tietoturvaa:** Tarpeettomat ja vanhentuneet Docker-resurssit voivat aiheuttaa tietoturvariskejä. Docker `prune` poistaa käyttämättömät kontit, kuvat, verkot ja levyt, mikä vähentää riskiä siitä, että vanhentuneet ja mahdollisesti haavoittuvat komponentit jäävät suojaamatta. Puhdas Docker-ympäristö minimoi hyökkäyskohteiden määrän ja parantaa IT-infrastruktuurisi yleistä tietoturvatasoa.

**Suorituskyvyn parantaminen:** Ylikuormitettu Docker-ympäristö voi heikentää järjestelmän suorituskykyä kuluttamalla turhaan resursseja, kuten prosessoria ja muistia. Säännöllinen puhdistus Docker `prune` avulla vapauttaa levytilaa ja tehostaa konttien hallintaa ja suorittamista. Tämä lyhentää latausaikoja huomattavasti, nopeuttaa sovellusten käyttöönottoa ja parantaa järjestelmän yleistä reagointikykyä.

**Yksinkertaistettu ylläpito:** Docker `prune` säännöllinen käyttö yksinkertaistaa merkittävästi Docker-ympäristön ylläpitoa. Poistamalla käyttämättömät resurssit se vähentää kehittäjien hallintatehtävien monimutkaisuutta. Tämä helpottaa aktiivisten ja olennaisten Docker-komponenttien seurantaa ja nopeuttaa vianmääritystä. Näin ollen tiimit säästävät aikaa hallinnollisissa tehtävissä ja voivat keskittyä enemmän sovellusten kehittämiseen ja parantamiseen sen sijaan, että joutuisivat käsittelemään tarpeettomia resursseja.

## Mikä on Docker `prune`:n syntaksi?

Onko sinulla **Docker-ympäristö** ja haluatko puhdistaa resursseja levytilan vapauttamiseksi ja hallinnan yksinkertaistamiseksi? Siinä tapauksessa suorita seuraava komento `prune` palvelun poistamiseksi:

```bash
docker system prune
```

Oletusasetuksena Docker tunnistaa pysäytetyt kontit, käyttämättömät kuvat, verkot ja levyt, jotka voidaan poistaa, ja pyytää vahvistusta ennen poistamista. Jatka kirjoittamalla y ja painamalla Enter-näppäintä. Vaihtoehtoisesti voit käyttää vaihtoehtoa `-f` ohittaaksesi vahvistuksen ja suorittaaksesi puhdistuksen välittömästi:

```bash
docker system prune -f
```

**Vinkki**: Ennen Docker `prune` käyttöä on hyvä tarkistaa, mitkä Docker-resurssit järjestelmässä tällä hetkellä ovat käytettävissä. Suorita seuraavat komennot saadaksesi luettelon kaikista kontteista, kuvista, verkoista ja levyalueista:

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

### Docker `prune` asetukset

Seuraavassa taulukossa on yhteenveto kohdan `docker system prune` eri vaihtoehdoista.

<table>
  <thead>
    <tr>
      <th>Vaihtoehto</th>
      <th>Kuvaus</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`--all, -a`</td>
      <td>Poistaa kaikki käyttämättömät Docker-resurssit.</td>
    </tr>
    <tr>
      <td>`--force, -f`</td>
      <td>Suorittaa puhdistuksen ilman käyttäjän vahvistusta.</td>
    </tr>
    <tr>
      <td>`--volumes`</td>
      <td>Poistaa käyttämättömät levyt.</td>
    </tr>
    <tr>
      <td>`--filter, -f`</td>
      <td>Mahdollistaa poistettavien resurssien suodattamisen kriteerien mukaan.</td>
    </tr>
    <tr>
      <td>`--help`</td>
      <td>Näyttää ohjeet komennon käytöstä.</td>
    </tr>
  </tbody>
</table>

## Kuinka käyttää Docker `prune` -komentoa

Docker tarjoaa erilaisia komentoja, joiden avulla tiettyjä resurssityyppejä voidaan puhdistaa kohdennetusti. Tämä antaa sinulle joustavuuden hallita tarkasti, mitkä resurssit poistetaan.

### Docker `prune --filter`

**Suodattimen** avulla voit hallita poistettavien resurssien valintaa, kuten kontteja, kuvia, verkkoja ja levyjä. Tästä on hyötyä kehitysympäristöissä, joissa luodaan helposti paljon väliaikaisia resursseja, jotka unohtuvat nopeasti.

**Yleinen syntaksi on seuraava:**

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

**Suodatinvaihtoehtoja ovat muun muassa:**

- `until`: Suodattaa resurssit niiden luontipäivämäärän perusteella. Tässä `<duration>` voi olla numeerinen arvo, johon on liitetty yksikkö, kuten `h` (tuntia), `m` (minuuttia) tai `s` (sekuntia).

```bash
docker <command> prune --filter "until=<duration>"
```

**Esimerkki:** Poista kaikki pysäytetyt kontit, jotka ovat yli 24 tuntia vanhoja

```bash
docker container prune --filter "until=24h"
```

- `label`: Suodattaa resursseja niiden Docker-tunnisteiden perusteella

```bash
docker <command> prune --filter "label=<label>"
```

**Esimerkki:** Poista kaikki käyttämättömät levyt, joiden tunniste on `mylabel`

```bash
docker volume prune --filter "label=mylabel"
```

- `dangling`: Suodattaa resurssit, joita kontti ei enää käytä

```bash
docker <command> prune --filter "dangling=true"
```

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

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

Edellä mainittujen pääsuodattimien lisäksi on olemassa myös resurssityypistä riippuvia tarkempia suodatinvaihtoehtoja:

- `before` ja `since` kuville: Suodattaa kuvat niiden luontipäivämäärän perusteella, joko ennen tiettyä ajankohtaa tai sen jälkeen
- `exited` kontteja varten: Suodattaa kontit niiden lopetustilan perusteella (esimerkiksi `exited=0` onnistuneesti lopetetuille konteille)

### Kuinka poistaa Docker-resursseja

**Vaihe 1:** Avaa järjestelmässäsi pääte tai komentorivi.

**Vaihe 2:** Suorita Docker `prune` järjestelmän puhdistamiseksi:

```bash
docker {resource} prune
```

Korvaa `{resource}` niiden resurssien tyypillä, jotka haluat puhdistaa. Kelvollisia arvoja ovat `container`, `image`, `volume` ja `network`.

### Kuinka poistaa Docker-kontteja

Oletusasetuksina Docker ei **vapauta** kontteja automaattisesti niiden elinkaaren päätyttyä. On tärkeää tarkistaa säännöllisesti pysäytetyt kontit ja puhdistaa ne tarpeen mukaan, jotta varatut resurssit vapautuvat käynnissä oleville kontteille. Tähän on kaksi tapaa.

- `docker rm`: Komento `docker rm` on tarkoitettu yhden tai useamman Docker-kontin **manuaaliseen** poistamiseen. Jos tiedät tarkalleen, mitkä kontit haluat poistaa, tämä on sopiva menetelmä. Sinun on määritettävä nimenomaisesti poistettavien konttien tunnukset tai nimet, jolloin voit poistaa ympäristöstäsi vain tietyt kontit vaikuttamatta muihin.

Tässä on esimerkki nimillä `container1` ja `container2` varustettujen konttien poistamisesta:

```bash
docker rm container1 container2
```

- `docker container prune`: Sen sijaan komento `docker container prune` on tarkoitettu useiden pysäytettyjen **konttien** poistamiseen **kerralla**. Tämä menetelmä sopii erityisen hyvin tilan vapauttamiseen nopeasti ja tehokkaasti poistamalla kaikki pysäytetyt kontit, joissa ei tällä hetkellä ole käynnissä olevia prosesseja.

```bash
docker container prune
```

Tässä näkyvät kaikki pysäytetyt kontit, ja Docker pyytää vahvistusta ennen niiden poistamista. Tämä on erittäin kätevää ympäristöissä, joissa luodaan paljon väliaikaisia kontteja, jotka myöhemmin käyvät tarpeettomiksi.

Docker-ympäristön päivittäisessä hallinnassa ja ylläpidossa on suositeltavaa käyttää **säännöllisesti** `docker container prune` pysäytettyjen konttien automaattiseen puhdistamiseen. Tämä menetelmä säästää aikaa ja varmistaa, ettei tarpeettomat resurssit heikennä järjestelmän suorituskykyä. Sen sijaan `docker rm` sopii erinomaisesti tiettyjen konttien poistamiseen kohdennetusti ja hallitusti, olipa kyseessä sitten testaus, kehitys tai muut erityistarpeet.

### Kuinka poistaa Docker-kuvat

Docker-kuvat ovat konttien rakennuspalikoita. Niistä voi ajan mittaan kertyä useita eri versioita ja tunnisteita. Kun luot tai päivität uusia kuvia, jäljelle jää usein vanhoja tai käyttämättömiä kuvia, joita kutsutaan **”dangling”-kuviksi**. Ne vievät järjestelmän levytilaa ja voivat heikentää suorituskykyä, etenkin jos tällaisia kuvia on paljon.

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

```bash
docker image prune [Options]
```

Mahdollisia **vaihtoehtoja** ovat esimerkiksi:

- `-a`, `--all`: Tämä vaihtoehto poistaa paitsi irralliset kuvat myös käyttämättömät kuvat. Käyttämättömiä kuvia ovat ne, joilla ei enää ole tunnisteita ja joihin ei siten voida viitata suoraan tunnisteiden avulla.

```bash
docker image prune -a
```

- `-f`, `--force`: Oletusasetuksena Docker pyytää vahvistusta ennen kuvien varsinaista poistamista. Valitsemalla `-f` tai `--force` voit ohittaa tämän vahvistusvaiheen ja suorittaa puhdistuksen välittömästi.

```bash
docker image prune -f
```

### Kuinka poistaa kaikki Docker-kuvat

Voit myös poistaa järjestelmästäsi nopeasti ja perusteellisesti kaikki Docker-kuvat, joita et enää tarvitse. Käyttääksesi Docker `prune` tehokkaasti, avaa ensin terminaali tai komentokehote ja kirjoita seuraava komento:

```bash
docker image prune -a --force
```

Tarkista ennen puhdistuksen aloittamista, mitkä kuvat poistetaan. Asetuksella `-a` voidaan poistaa käyttämättömiä kuvia, joita saatat vielä tarvita.

### Kuinka poistaa Docker-tallennuslevyt

Volyymit ovat **pysyviä** ja säilyttävät tiedot, vaikka niihin liittyvä kontti ei enää olisi käynnissä. Ajan myötä nämä volyymit voivat kasvaa ja kuluttaa resursseja tarpeettomasti.

```bash
docker volume prune
```

Tämä komento etsii kaikki levyt, joilla ei ole aktiivisia kontteja. Saat luettelon poistettavaksi ehdotetuista levyistä, ja sinun on vahvistettava toimenpide ennen puhdistuksen suorittamista.

Sen sijaan komento `docker volume rm` poistaa nimenomaan yksittäisiä Docker-tallennuslevyjä. Tästä voi olla hyötyä, jos tiedät tarkalleen, minkä tallennuslevyn haluat poistaa, riippumatta siitä, onko se parhaillaan jonkin kontin käytössä. Poistaaksesi tietyn Docker-tallennuslevyn, käytä komentoa `docker volume rm` ja kirjoita sen perään tallennuslevyn nimi tai tunniste:

```bash
docker volume rm volume_name
```

Varmista jälleen, että tiedät poistettavan levyn nimen tai tunnisteen, sillä tämä komento poistaa tiedot lopullisesti eikä sitä voi peruuttaa.

### Kuinka poistaa Docker-verkot

Dockerissa verkot ovat keskeinen osa, jonka avulla kontit voivat kommunikoida keskenään riippumatta siitä, sijaitsevatko ne samalla isäntäkoneella vai useilla eri isäntäkoneilla. **Docker-verkot** säilyvät myös sen jälkeen, kun kontit on suljettu tai poistettu. Ajan myötä tämä voi johtaa käyttämättömien verkkojen kertymiseen, jotka kuluttavat resursseja tarpeettomasti. Komento `docker prune network` on helppo tapa tunnistaa ja poistaa nämä käyttämättömät verkot.

Komento on seuraavassa muodossa:

```bash
docker network prune [OPTIONS]
```

Docker luo luettelon kaikista verkoista, joita aktiiviset kontit eivät enää käytä tai joihin ei enää viitata. Ennen verkkojen varsinaista poistamista pyydetään vahvistus.

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

- **Automaattinen puhdistus:** Käytä automaattisia komentosarjoja tai työkaluja puhdistamaan säännöllisesti Docker-kuvat, kontit ja levyt, joita ei enää tarvita. Tämä pitää ympäristön siistinä ja optimoi suorituskyvyn.
- **Turvapäivitykset ja korjaukset:** Tarkista säännöllisesti Docker-moottoreiden, isäntäkäyttöjärjestelmien ja kaikkien Docker-kuvien turvapäivitykset ja korjaukset. Näiden komponenttien pitäminen ajan tasalla auttaa minimoimaan mahdolliset tietoturva-aukot.
- **Valvonta ja lokit:** Käytä valvonta- ja lokityökaluja konttien suorituskyvyn valvontaan, odottamattomien tapahtumien havaitsemiseen ja ennakoivan ylläpidon edistämiseen.
- **Ulkoinen varmuuskopiointi:** Luo rutiinit Docker-konttien tärkeiden tietojen ulkoiselle varmuuskopioinnille, kuten tietokannan sisällön tai konfiguraatiotiedostojen säännölliselle varmuuskopioinnille.
- **Manuaalinen tarkistus ennen poistamista:** Tarkista huolellisesti, etkö enää tarvitse tiettyjä resursseja, ennen kuin poistat ne. Tämä minimoi vahingossa tapahtuvan tietojen menetyksen tai käynnissä olevien prosessien keskeytyksen riskin.

Vinkki Jos olet vasta aloittamassa Docker-käyttöä, suosittelemme lukemaan kattavan [Docker-oppaamme](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/docker-opas-asennus-ja-ensimmaeiset-askeleet/).


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/docker-prune/](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/docker-prune/) for AI/LLM consumption.