# Kā lietot Docker prune – pamācība ar piemēriem

Docker `prune` **izdzēš nevajadzīgos objektus**, piemēram, apturētus konteinerus, neizmantotus apjomus un vecus tīklus vai attēlus. Tas palīdz optimizēt cietā diska izmantošanu un atbrīvot vietu uzglabāšanai.

## Kas ir Docker `prune`?

Docker `prune` vai `system prune` ir noderīgs, lai **sistemātiski attīrītu** vairs nevajadzīgos Docker resursus, palīdzot atbrīvot atmiņu. Ja Docker konteineri, attēli, tīkli un apjomi ilgstoši netiek izmantoti, tie var aizņemt ievērojamu diska vietu. Ar `prune` varat ātri likvidēt šos neizmantotos resursus, tādējādi uzturot sistēmu tīru un nodrošinot tās maksimālo veiktspēju.

Īpaši **izstrādes vidēs**, kur bieži tiek izveidoti un testēti jauni konteineri, var uzkrāties ievērojams skaits novecojušu objektu. Docker `prune` efektīvi dzēš ne tikai neizmantotos konteinerus un attēlus, bet arī tīklus un apjomus, kas vairs nav nepieciešami. Tas vienkāršo Docker resursu pārvaldību un samazina risku, ka sistēma kļūs pārblīvēta un pārslodzēta.

## Kādiem mērķiem tiek izmantots Docker `prune`?

Komanda `prune` ir piemērota dažādām situācijām ikdienas darbā ar Docker. Turpinājumā esam uzskaitījuši četrus tipiskus tās izmantošanas scenārijus.

**Darba procesu optimizācija:** Docker vides bieži tiek izmantotas izstrādei, testēšanai un ražošanai. Ja netiek veikta regulāra tīrīšana, tas var izraisīt nevajadzīgo resursu strauju uzkrāšanos. Šāda pārslodze ne tikai palielina atmiņas patēriņu, bet var arī negatīvi ietekmēt sistēmas veiktspēju. Atbrīvojoties no neizmantotajiem resursiem, Docker `prune` nodrošina efektīvāku sistēmas resursu izmantošanu. Tas ir īpaši svarīgi mākoņvidē, kur izmaksas pieaug līdz ar pieprasījumu pēc uzglabāšanas un skaitļošanas resursiem.

**Uzlabojiet drošību:** liekie un novecojuši Docker resursi var radīt drošības riskus. Docker `prune` izdzēš neizmantotos konteinerus, attēlus, tīklus un apjomus, tādējādi samazinot iespēju, ka novecojuši un potenciāli neaizsargāti komponenti paliks bez aizsardzības. Uzturot sakārtotu Docker ekosistēmu, tiek samazināta uzbrukumu virsma un uzlabota jūsu IT infrastruktūras vispārējā drošība.

**Veiktspējas uzlabošana:** Pārslodzēta Docker vide var samazināt sistēmas veiktspēju, patērējot liekus resursus, piemēram, procesora jaudu un atmiņu. Regulāra tīrīšana ar Docker `prune` atbrīvo diska vietu un uzlabo konteineru pārvaldības un izpildes efektivitāti. Tas nodrošina ievērojami īsākus ielādes laikus, ātrāku lietojumprogrammu ieviešanu un uzlabotu sistēmas kopējo reaģētspēju.

**Vienkāršota uzturēšana:** Regulāra Docker `prune` izmantošana ievērojami vienkāršo jūsu Docker vides uzturēšanu. Atbrīvojoties no neizmantotajiem resursiem, tas samazina pārvaldības uzdevumu sarežģītību attīstītājiem. Tas atvieglo aktīvo un nepieciešamo Docker komponentu uzraudzību, paātrinot problēmu novēršanu. Rezultātā komandas ietaupa laiku, kas citādi tiktu veltīts administrēšanai, un var vairāk koncentrēties uz savu lietojumprogrammu izstrādi un pilnveidošanu, nevis uz lieko resursu pārvaldību.

## Kāda ir Docker `prune` sintakse?

Vai jums ir **Docker vide** un vēlaties atbrīvot resursus, lai atbrīvotu vietu diskā un vienkāršotu pārvaldību? Šādā gadījumā vienkārši izpildiet šo komandu, lai piekļūtu `prune` pakalpojumiem:

```bash
docker system prune
```

Pēc noklusējuma Docker identificē apturētos konteinerus, neizmantotos attēlus, tīklus un apjomus, kurus var izdzēst, un pirms to dzēšanas lūdz apstiprinājumu. Lai turpinātu, vienkārši ievadiet burtu „y“ un nospiediet taustiņu „Enter“. Alternatīvi varat izmantot opciju `-f`, lai izlaistu apstiprinājumu un nekavējoties sāktu tīrīšanu:

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

**Padoms**: Pirms sākat lietot Docker `prune`, ir lietderīgi pārbaudīt, kādi Docker resursi pašlaik ir pieejami sistēmā. Izpildiet šādas komandas, lai iegūtu visu konteineru, attēlu, tīklu un apjomu sarakstu:

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

### Docker `prune` opcijas

Turpmākajā tabulā ir sniegts pārskats par dažādajām `docker system prune`. versijas iespējām.

<table>
  <thead>
    <tr>
      <th>Iespēja</th>
      <th>Apraksts</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`--all, -a`</td>
      <td>Noņem visus neizmantotos Docker resursus.</td>
    </tr>
    <tr>
      <td>`--force, -f`</td>
      <td>Veic tīrīšanu bez lietotāja apstiprinājuma.</td>
    </tr>
    <tr>
      <td>`--volumes`</td>
      <td>Noņem neizmantotos apjomus.</td>
    </tr>
    <tr>
      <td>`--filter, -f`</td>
      <td>Ļauj filtrēt resursus, kas jāizdzēš, atbilstoši kritērijiem.</td>
    </tr>
    <tr>
      <td>`--help`</td>
      <td>Parāda palīdzību par komandas lietošanu.</td>
    </tr>
  </tbody>
</table>

## Kā izmantot komandu „docker `prune` “

Docker piedāvā dažādas komandas, kas ļauj mērķtiecīgi iztīrīt konkrētu veidu resursus. Tas nodrošina elastību, lai precīzi kontrolētu, kuri resursi ir jāizdzēš.

### Docker `prune --filter`

Izmantojot **filtru**, varat kontrolēt to resursu atlasi, kurus vēlaties dzēst, piemēram, konteinerus, attēlus, tīklus un apjomus. Tas ir noderīgi izstrādes vidēs, kurās var tikt izveidoti daudzi pagaidu resursi, par kuriem ātri vien aizmirst.

**Vispārīgā sintakse ir šāda:**

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

**Dažādas filtrēšanas iespējas ietver:**

- `until`: Filtrē resursus pēc to izveides datuma. Šajā gadījumā `<duration>` var būt skaitliska vērtība ar vienību, piemēram, `h` (stundas), `m` (minūtes) vai `s` (sekundes).

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

**Piemērs:** Izdzēst visus apturētos konteinerus, kas ir vecāki par 24 stundām

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

- `label`: Filtrē resursus, pamatojoties uz to Docker marķējumiem

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

**Piemērs:** Izdzēsiet visus neizmantotos apjomus, kuriem ir piešķirts marķējums `mylabel`

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

- `dangling`: Filtrē resursus, kurus konteiners vairs neizmanto

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

**Piemērs:** Izdzēst visus vairs neizmantotos (nepiestiprinātos) attēlus\*

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

Papildus iepriekš minētajiem galvenajiem filtriem ir pieejamas arī specifiskākas filtrēšanas iespējas atkarībā no resursa veida:

- `before` un `since` attēliem: filtrē attēlus pēc to izveides datuma — vai nu pirms, vai pēc noteiktā laika brīža
- `exited` konteineriem: filtrē konteinerus pēc to iziešanas statusa (piemēram, `exited=0` veiksmīgi pabeigtiem konteineriem)

### Kā atbrīvot Docker resursus

**1. solis:** Atveriet termināli vai komandu rindu savā sistēmā.

**2. solis:** Palaižiet Docker `prune`, lai attīrītu sistēmu:

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

Aizstājiet `{resource}` ar to resursu tipu, kuru vēlaties iztīrīt. Pieļaujamās vērtības ir `container`, `image`, `volume` un `network`.

### Kā dzēst Docker konteinerus

Pēc noklusējuma Docker automātiski **neatbrīvo** konteinerus pēc to dzīves cikla beigām. Ir svarīgi regulāri pārbaudīt apturētos konteinerus un nepieciešamības gadījumā tos iztīrīt, lai atbrīvotu aizņemtos resursus darbojošos konteineru vajadzībām. To var izdarīt divos veidos.

- `docker rm`: Komanda `docker rm` ir paredzēta, lai **manuāli** dzēstu vienu vai vairākus Docker konteinerus. Ja precīzi zināt, kurus konteinerus vēlaties dzēst, šī ir piemērotākā metode. Jums ir skaidri jānorāda to konteineru ID vai nosaukumi, kurus vēlaties dzēst, tādējādi no savas vides varat dzēst tikai konkrētus konteinerus, neietekmējot pārējos.

Šeit ir piemērs, kā dzēst konteinerus ar nosaukumiem `container1` un `container2`:

```bash
docker rm container1 container2
```

- `docker container prune`: Savukārt `docker container prune` ir komanda, kuras mērķis ir **vienlaikus** izdzēst vairākus apturētus **konteinerus**. Šī metode ir īpaši piemērota, lai ātri un efektīvi atbrīvotu vietu, izdzēšot visus apturētos konteinerus, kuros pašlaik nav darbojošos procesu.

```bash
docker container prune
```

Šeit ir uzskaitīti visi apturētie konteineri, un Docker pirms to dzēšanas lūdz apstiprinājumu. Tas ir ļoti ērti vidēs, kurās tiek izveidoti daudzi pagaidu konteineri, kas vēlāk vairs nav vajadzīgi.

Lai nodrošinātu ikdienas pārvaldību un uzturēšanu jūsu Docker vidē, ieteicams **regulāri** izmantot `docker container prune`, lai automātiski iztīrītu apturētos konteinerus. Šāda pieeja ietaupa laiku un nodrošina, ka nevajadzīgi resursi neietekmē sistēmas veiktspēju. Savukārt `docker rm` ir ideāli piemērots, lai mērķtiecīgi un kontrolēti dzēstu konkrētus konteinerus, vai nu testēšanas, izstrādes vai citu konkrētu vajadzību dēļ.

### Kā dzēst Docker attēlus

Docker attēli ir konteineru pamatelementi. Laika gaitā tiem var būt daudzas dažādas versijas un birkas. Izveidojot vai atjauninot jaunus attēlus, bieži paliek vecie vai neizmantotie attēli, ko sauc par **„dangling**“. Tie aizņem vietu sistēmas diskā un var ietekmēt veiktspēju, jo īpaši, ja šādu attēlu ir daudz.

Izmantojot Docker `prune`, varat atrast un dzēst attēlus, kas vairs netiek izmantoti:

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

Šeit iespējamās **opcijas** ir, piemēram:

- `-a`, `--all`: Šī opcija ne tikai noņem „karājošos” attēlus, bet arī neizmantotos attēlus. Neizmantoti attēli ir tie, kuriem vairs nav tagu un uz kuriem tādēļ nevar tieši atsaukties, izmantojot tagus.

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

- `-f`, `--force`: Pēc noklusējuma Docker pirms attēlu faktiskas dzēšanas prasa apstiprinājumu. Izmantojot `-f` vai `--force`, varat izlaist šo apstiprināšanas posmu un veikt tīrīšanu uzreiz.

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

### Kā dzēst visus Docker attēlus

Jūs varat arī ātri un pilnībā izdzēst no sistēmas visus Docker attēlus, kas vairs nav vajadzīgi. Lai efektīvi izmantotu Docker `prune`, vispirms atveriet termināli vai komandu uzvedni un ievadiet šādu komandu:

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

Pirms sākat tīrīšanu, pārliecinieties, ka esat pārbaudījis, kuras attēlus tiks dzēsti. Izvēloties opciju `-a`, var tikt dzēsti neizmantoti attēli, kas jums varētu vēl būt vajadzīgi.

### Kā dzēst Docker apjomus

Sējumi ir **pastāvīgi** un saglabā datus pat tad, ja saistītais konteiners vairs nedarbojas. Laika gaitā šie sējumi var palielināties un nevajadzīgi patērēt resursus.

```bash
docker volume prune
```

Šī komanda meklē visus apjomus, kuros nav aktīvu konteineru. Jūs saņemsiet sarakstu ar apjomiem, kurus ieteicams dzēst, un pirms tīrīšanas izpildes būs nepieciešama apstiprinājuma pieprasīšana.

Turpretim komanda `docker volume rm` ir paredzēta tieši atsevišķu Docker apjomu dzēšanai. Tas var būt noderīgi, ja precīzi zināt, kuru apjomu vēlaties dzēst, neatkarīgi no tā, vai to pašlaik izmanto kāds konteiners. Lai dzēstu konkrētu Docker apjomu, izmantojiet komandu `docker volume rm`, aiz kuras norādiet apjoma nosaukumu vai ID:

```bash
docker volume rm volume_name
```

Atkārtoju – pārliecinieties, ka zināt dzēšamā apjoma nosaukumu vai identifikatoru, jo šī komanda datus dzēš neatgriezeniski un šo darbību nevar atcelt.

### Kā dzēst Docker tīklus

Docker vidē tīkli ir būtiska sastāvdaļa, kas ļauj konteineriem sazināties savā starpā neatkarīgi no tā, vai tie atrodas vienā datorā vai izkliedēti pa vairākiem datoriem. **Docker tīkli** saglabājas pat pēc tam, kad konteineri ir pārtraukti vai noņemti. Laika gaitā tas var izraisīt neizmantoto tīklu uzkrāšanos, kas nevajadzīgi patērē resursus. Komanda `docker prune network` ` ir vienkāršs veids, kā identificēt un noņemt šos neizmantotos tīklus.

Komandai ir šāds formāts:

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

Docker izveido sarakstu ar visiem tīkliem, kurus vairs neizmanto aktīvie konteineri vai uz kuriem vairs nav atsauču. Pirms tīklu faktiskas dzēšanas tiek pieprasīts apstiprinājums.

### Labākā prakse saistībā ar Docker `prune`

- **Automātiska tīrīšana:** izmantojiet automatizētus skriptus vai rīkus, lai regulāri dzēstu vairs nevajadzīgos Docker attēlus, konteinerus un apjomus. Tas nodrošina tīru vidi un optimizē veiktspēju.
- **Drošības labojumi un atjauninājumi:** Regulāri pārbaudiet, vai ir pieejami drošības atjauninājumi un labojumi Docker dzinējiem, uzņēmējoperētājsistēmām un visiem Docker attēliem. Šo komponentu uzturēšana atjaunināta palīdz samazināt potenciālās drošības ievainojamības.
- **Uzraudzība un žurnālu reģistrēšana:** izmantojiet uzraudzības un žurnālu reģistrēšanas rīkus, lai uzraudzītu konteineru veiktspēju, atklātu negaidītus notikumus un veicinātu proaktīvu uzturēšanu.
- **Ārējā dublēšana:** izveidojiet rutīnas svarīgu datu ārējai dublēšanai no Docker konteineriem, piemēram, regulāri dublējot datu bāzes saturu vai konfigurācijas failus.
- **Manuāla pārbaude pirms noņemšanas:** Pirms noteiktu resursu noņemšanas rūpīgi pārbaudiet, vai tie vairs nav nepieciešami. Tas samazinās nejaušas datu zaudēšanas vai darbojošos procesu pārtraukumu risku.

Tip Ja jūs tikai sākat iepazīties ar Docker, iesakām izlasīt mūsu izsmeļošo [Docker apmācību](https://www.ionos.com/lv-lv/digitalguide/serveris/konfiguracija/docker-pamaciba-instalesana-un-pirmie-soli/).


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