# Kaip naudoti „Docker prune“ – pamoka su pavyzdžiais

„Docker `prune` **pašalina nereikalingus objektus**, pavyzdžiui, sustabdytus konteinerius, nenaudojamus tomus ir senus tinklus ar atvaizdus. Tai padeda optimizuoti kietojo disko naudojimą ir atlaisvina saugojimo vietą.

## Kas yra „Docker `prune`“?

„Docker `prune` arba `system prune` yra naudingos norint **sistemingai išvalyti** nebereikalingus „Docker“ išteklius ir taip atlaisvinti atmintį. Jei „Docker“ konteineriai, atvaizdai, tinklai ir tomai ilgą laiką nenaudojami, jie gali užimti nemažai vietos diske. Naudodami `prune`, galite greitai pašalinti šiuos nenaudojamus išteklius, taip užtikrindami, kad jūsų sistema būtų tvarkinga ir veiktų maksimaliai efektyviai.

Ypač **kūrimo aplinkose**, kuriose dažnai kuriamos ir testuojamos naujos konteinerių **aplinkos**, gali susikaupti nemažai nebereikalingų objektų. „Docker `prune` veiksmingai pašalina ne tik nenaudojamus konteinerius ir atvaizdus, bet ir nebereikalingus tinklus bei tomus. Tai supaprastina „Docker“ išteklių valdymą ir sumažina riziką, kad sistema taps perkrauta ir nebeveiksminga.

## Kam naudojamas „Docker `prune` “?

Komanda `prune` tinka įvairioms situacijoms kasdieniame darbe su „Docker“. Toliau pateikiame keturis tipiškus jos naudojimo atvejus.

**Optimizuokite darbo procesus:** „Docker“ aplinkos dažnai naudojamos kūrimo, testavimo ir gamybos tikslais. Jei reguliariai nevykdomas valymas, tai gali lemti greitą nereikalingų išteklių kaupimąsi. Toks perkrovimas ne tik padidina atminties naudojimą, bet ir gali neigiamai paveikti sistemos našumą. Pašalinant nenaudojamus išteklius, „Docker `prune` užtikrina efektyvesnį sistemos išteklių naudojimą. Tai ypač svarbu debesų aplinkose, kur išlaidos didėja kartu su saugojimo ir skaičiavimo išteklių paklausa.

**Padidinkite saugumą:** nereikalingi ir pasenę „Docker“ ištekliai gali kelti grėsmę saugumui. „Docker `prune` pašalina nenaudojamus konteinerius, atvaizdus, tinklus ir tomus, taip sumažindamas tikimybę, kad pasenę ir potencialiai pažeidžiami komponentai liks nesaugomi. Tvarkingos „Docker“ ekosistemos palaikymas sumažina atakų paviršių ir sustiprina bendrą jūsų IT infrastruktūros saugumą.

**Našumo didinimas:** Perkrauta „Docker“ aplinka gali sumažinti sistemos našumą, nes eikvoja nereikalingus išteklius, pavyzdžiui, procesoriaus ir atminties resursus. Reguliariai valant sistemą naudojant „Docker `prune`, atlaisvinama vietos diske ir padidinamas konteinerių valdymo bei vykdymo efektyvumas. Tai leidžia žymiai sutrumpinti įkėlimo laiką, pagreitinti programų diegimą ir pagerinti bendrą sistemos reagavimo greitį.

**Paprastesnė priežiūra:** Reguliarus `prune` naudojimas žymiai supaprastina jūsų „Docker“ aplinkos priežiūrą. Pašalinant nenaudojamus išteklius, sumažėja valdymo užduočių sudėtingumas kūrėjams. Tai leidžia lengviau stebėti aktyvius ir reikalingus „Docker“ komponentus, o tai pagreitina gedimų šalinimą. Dėl to komandos sutaupo laiko, skirto administravimui, ir gali daugiau dėmesio skirti programų kūrimui bei tobulinimui, o ne nereikalingų išteklių tvarkymui.

## Kokia yra „Docker `prune`“ sintaksė?

Ar turite **„Docker“ aplinką** ir norite išvalyti išteklius, kad atlaisvintumėte vietos diske ir supaprastintumėte valdymą? Tokiu atveju tiesiog įvykdykite šią komandą, kad pasiektumėte `prune` paslaugas:

```bash
docker system prune
```

Pagal numatytuosius nustatymus „Docker“ nustato sustabdytus konteinerius, nenaudojamus atvaizdus, tinklus ir tomus, kuriuos galima pašalinti, ir prieš pašalinimą prašo jūsų patvirtinimo. Norėdami tęsti, tiesiog įveskite „y“ ir paspauskite klavišą „Enter“. Taip pat galite naudoti parinktį `-f`, kad praleistumėte patvirtinimą ir išvalymą paleistumėte iš karto:

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

**Patarimas**: Prieš pradedant naudoti „Docker `prune`, verta patikrinti, kokie „Docker“ ištekliai šiuo metu yra sistemoje. Norėdami gauti visų konteinerių, atvaizdų, tinklų ir tomų sąrašą, įvykdykite šias komandas:

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

### „Docker“ `prune` parinktys

Toliau pateiktoje lentelėje pateikiama įvairių `docker system prune` versijos parinkčių apžvalga.

<table>
  <thead>
    <tr>
      <th>Pasirinkimas</th>
      <th>Aprašymas</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`--all, -a`</td>
      <td>Pašalina visus nenaudojamus „Docker“ išteklius.</td>
    </tr>
    <tr>
      <td>`--force, -f`</td>
      <td>Atlieka valymą be vartotojo patvirtinimo.</td>
    </tr>
    <tr>
      <td>`--volumes`</td>
      <td>Pašalina nenaudojamus tomus.</td>
    </tr>
    <tr>
      <td>`--filter, -f`</td>
      <td>Leidžia filtruoti pašalinamus išteklius pagal kriterijus.</td>
    </tr>
    <tr>
      <td>`--help`</td>
      <td>Rodo pagalbą apie komandos naudojimą.</td>
    </tr>
  </tbody>
</table>

## Kaip naudoti komandą „Docker `prune` “

„Docker“ siūlo įvairias komandas, leidžiančias tikslingai išvalyti konkrečių tipų išteklius. Tai suteikia lankstumą tiksliai kontroliuoti, kurie ištekliai turėtų būti pašalinti.

### Docker `prune --filter`

Naudodami **filtrą** galite valdyti pašalinamų išteklių, pavyzdžiui, konteinerių, atvaizdų, tinklų ir tomų, pasirinkimą. Tai ypač naudinga kūrimo aplinkose, kuriose gali būti sukurta daug laikinių išteklių, apie kuriuos greitai pamirštama.

**Bendroji sintaksė yra tokia:**

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

**Įvairios filtravimo galimybės apima:**

- `until`: Filtruoja išteklius pagal jų sukūrimo datą. Čia `<duration>` gali būti skaitmeninė reikšmė su matavimo vienetu, pvz., `h` (valandos), `m` (minutės) arba `s` (sekundės).

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

**Pavyzdys:** pašalinti visus sustabdytus konteinerius, kurių senumas viršija 24 valandas

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

- `label`: Filtruoja išteklius pagal jų „Docker“ žymes

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

**Pavyzdys:** Išvalykite visus nenaudojamus tomus, pažymėtus žyma `mylabel`

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

- `dangling`: Filtruoja išteklius, kurių konteineris nebeinaudoja

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

**Pavyzdys:** Pašalinti visus nebenaudojamus (nepriskirtus) paveikslėlius\*

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

Be minėtų pagrindinių filtrų, taip pat yra ir konkretesnių filtravimo parinkčių, priklausančių nuo išteklių tipo:

- `before` ir `since` vaizdams: filtruoja vaizdus pagal jų sukūrimo datą – iki tam tikro laiko taško arba nuo jo
- `exited` konteineriams: filtruoja konteinerius pagal jų užbaigimo būseną (pavyzdžiui, `exited=0` sėkmingai užbaigtiems konteineriams)

### Kaip pašalinti „Docker“ išteklius

**1 žingsnis:** Atidarykite terminalo langą arba komandų eilutę savo kompiuteryje.

**2 žingsnis:** Paleiskite „Docker `prune`, kad išvalytumėte sistemą:

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

Pakeiskite `{resource}` į išvalyti norimų išteklių tipą. Galimos reikšmės: `container`, `image`, `volume` ir `network`.

### Kaip pašalinti „Docker“ konteinerius

Pagal numatytuosius nustatymus „Docker“ automatiškai **neišlaisvina** konteinerių, kai jų gyvavimo ciklas baigiasi. Svarbu reguliariai tikrinti sustabdytus konteinerius ir prireikus juos išvalyti, kad būtų atlaisvinti užimti ištekliai veikiantiems konteineriams. Tai galima padaryti dviem būdais.

- `docker rm`: Komanda `docker rm` skirta vienam arba keliems „Docker“ konteineriams pašalinti **rankiniu būdu**. Jei tiksliai žinote, kuriuos konteinerius norite pašalinti, tai yra tinkamiausias būdas. Turite aiškiai nurodyti pašalintinų konteinerių ID arba pavadinimus, kad galėtumėte iš savo aplinkos pašalinti tik konkrečius konteinerius, nepažeidžiant kitų.

Štai pavyzdys, kaip ištrinti konteinerius, kurių pavadinimai yra `container1` ir `container2`:

```bash
docker rm container1 container2
```

- `docker container prune`: Tuo tarpu `docker container prune` yra komanda, skirta **vienu metu** pašalinti kelis sustabdytus **konteinerius**. Šis metodas ypač tinka greitai ir efektyviai atlaisvinti vietą, pašalinant visus sustabdytus konteinerius, kuriuose šiuo metu nevyksta jokie procesai.

```bash
docker container prune
```

Čia pateikiamas visų sustabdytų konteinerių sąrašas, o prieš juos pašalinant „Docker“ paprašo patvirtinimo. Tai labai praktiška aplinkose, kuriose sukurta daug laikinių konteinerių, kurie vėliau tampa nereikalingi.

Siekiant užtikrinti kasdienį „Docker“ aplinkos valdymą ir priežiūrą, rekomenduojama **reguliariai** naudoti `docker container prune`, kad sustabdyti konteineriai būtų automatiškai išvalomi. Šis metodas padeda sutaupyti laiko ir užtikrina, kad nereikalingi ištekliai netrukdytų sistemos našumui. Tuo tarpu `docker rm` puikiai tinka tikslingai ir kontroliuojamai pašalinti konkrečius konteinerius, nesvarbu, ar tai būtų daroma testavimo, kūrimo ar kitokių konkrečių poreikių tikslais.

### Kaip pašalinti „Docker“ vaizdus

„Docker“ atvaizdai yra konteinerių sudedamosios dalys. Laikui bėgant jie gali turėti daugybę skirtingų versijų ir žymių. Kurdami ar atnaujinant naujus atvaizdus, dažnai lieka senų arba nenaudojamų atvaizdų, vadinamų **„pakibusiais**“. Jie užima vietos jūsų sistemos diske ir gali turėti įtakos našumui, ypač jei tokių atvaizdų yra daug.

Naudodami „Docker `prune` galite nustatyti ir pašalinti nebevartojamus atvaizdus:

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

Čia galimos **galimybės**, pavyzdžiui:

- `-a`, `--all`: Ši parinktis pašalina ne tik pakibusius vaizdus, bet ir nenaudojamus vaizdus. Nenaudojami vaizdai – tai tie, kurie nebeturi žymių ir todėl negali būti tiesiogiai nurodomi naudojant žymes.

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

- `-f`, `--force`: Pagal numatytuosius nustatymus „Docker“ prašo patvirtinimo prieš faktiškai ištrinant atvaizdus. Pasirinkus `-f` arba `--force`, galite praleisti šį patvirtinimo etapą ir išvalymą atlikti iš karto.

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

### Kaip pašalinti visus „Docker“ atvaizdus

Be to, galite greitai ir išsamiai išvalyti visas sistemos „Docker“ vaizdus, kurių jau nebereikia. Norėdami veiksmingai naudoti „Docker `prune`, pirmiausia atidarykite terminalą arba komandų eilutę ir įveskite šią komandą:

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

Prieš pradėdami valymą, būtinai patikrinkite, kokie vaizdai bus pašalinti. Pasirinkus `-a` parinktį, gali būti ištrinti nenaudojami vaizdai, kurie jums vis dar gali prireikti.

### Kaip pašalinti „Docker“ tomus

Tomas yra **nuolatinis** ir išsaugo duomenis net ir tada, kai susijęs konteineris nebeveikia. Laikui bėgant šie tomai gali išsiplėsti ir be reikalo eikvoti išteklius.

```bash
docker volume prune
```

Ši komanda suranda visus tomus, kuriuose nėra aktyvių konteinerių. Jums bus pateiktas sąrašas tomų, kuriuos siūloma pašalinti, o prieš vykdant valymą reikės patvirtinti šį veiksmą.

Tuo tarpu komanda `docker volume rm` skirta konkrečiam atskirų „Docker“ tomų pašalinimui. Tai gali būti naudinga, jei tiksliai žinote, kurį tomą norite ištrinti, nepriklausomai nuo to, ar jį šiuo metu naudoja konteineris. Norėdami pašalinti konkretų „Docker“ tomą, naudokite komandą `docker volume rm`, po kurios nurodykite tomo pavadinimą arba ID:

```bash
docker volume rm volume_name
```

Dar kartą įsitikinkite, kad žinote naštos, kurią ketinate ištrinti, pavadinimą arba identifikatorių, nes ši komanda duomenis pašalina visam laikui ir šios operacijos atšaukti neįmanoma.

### Kaip pašalinti „Docker“ tinklus

„Docker“ tinkle tinklai yra pagrindinis komponentas, leidžiantis konteineriams tarpusavyje bendrauti, nesvarbu, ar jie yra tame pačiame serveryje, ar išsibarstę po kelis serverius. **„Docker“ tinklai** išlieka net ir po to, kai konteineriai uždaromi arba pašalinami. Laikui bėgant tai gali sukelti nenaudojamų tinklų susikaupimą, kurie be reikalo eikvoja išteklius. Komanda `docker prune network` yra paprastas būdas šiuos nenaudojamus tinklus nustatyti ir pašalinti.

Komanda turi tokį formatą:

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

„Docker“ sukuria sąrašą visų tinklų, kurių nebeinaudoja aktyvūs konteineriai arba į kuriuos nebėra nuorodų. Prieš faktiškai pašalinant tinklus, prašoma patvirtinti šį veiksmą.

### Geriausia Docker praktika `prune`

- **Automatinis valymas:** Naudokite automatinius scenarijus ar įrankius, kad reguliariai išvalytumėte nebereikalingus „Docker“ atvaizdus, konteinerius ir tomus. Tai padeda išlaikyti aplinką tvarkingą ir optimizuoja našumą.
- **Saugumo pataisos ir atnaujinimai:** Reguliariai tikrinkite, ar yra saugumo atnaujinimų ir pataisų „Docker“ varikliams, pagrindinėms operacinėms sistemoms ir visiems „Docker“ atvaizdams. Šių komponentų atnaujinimas padeda sumažinti galimas saugumo spragas.
- **Stebėjimas ir registravimas:** naudokite stebėjimo ir registravimo įrankius, kad stebėtumėte konteinerių našumą, aptiktumėte netikėtus įvykius ir skatintumėte aktyvią priežiūrą.
- **Išorinė atsarginė kopija:** Nustatykite svarbiausių duomenų iš „Docker“ konteinerių išorinės atsarginės kopijos kūrimo tvarką, pvz., reguliariai kurkite duomenų bazių turinio ar konfigūracijos failų atsargines kopijas.
- **Rankinis patikrinimas prieš pašalinimą:** Prieš pašalindami tam tikrus išteklius, atidžiai patikrinkite, ar jų nebereikia. Tai sumažins atsitiktinio duomenų praradimo ar vykstančių procesų pertraukimo riziką.

Tip Jei tik pradedate dirbti su „Docker“, rekomenduojame perskaityti mūsų išsamų [„Docker“ vadovą](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/docker-vadovas-idiegimas-ir-pirmieji-zingsniai/).


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