# Kako uporabljati ukaz Docker prune – vodnik s primeri

Docker `prune` **odstrani nepotrebne elemente**, kot so ustavljeni kontejnerji, neuporabljeni prostori ter stara omrežja ali slike. To pripomore k optimizaciji izkoriščenosti trdega diska in sprosti prostor za shranjevanje.

## Kaj je Docker `prune`?

Docker `prune` ali `system prune` je koristen za **sistematično čiščenje** Dockerjevih virov, ki niso več potrebni, kar vam pomaga sprostiti pomnilnik. Če Dockerjevi kontejnerji, slike, omrežja in prostori dolgo časa ostanejo neuporabljeni, lahko zavzamejo precej prostora na disku. Z `prune` lahko te neuporabljene vire hitro odstranite, s čimer ohranite sistem urejen in zagotovite njegovo optimalno delovanje.

Zlasti v **razvojnih okoljih**, kjer se pogosto ustvarjajo in testirajo novi kontejnerji, se lahko nabere veliko število zastarelih objektov. Docker `prune` učinkovito odstrani ne le neuporabljene kontejnerje in slike, temveč tudi omrežja in prostore, ki niso več potrebni. To poenostavi upravljanje virov Dockerja in zmanjša tveganje za preobremenjen sistem.

## Za kaj se uporablja Docker `prune`?

Ukaz `prune` je primeren za različne situacije pri vsakodnevnem delu z Dockerjem. Spodaj smo navedli štiri tipične primere njegove uporabe.

**Optimizacija delovnih procesov:** Okolja Docker se pogosto uporabljajo za razvoj, testiranje in produkcijo. Brez rednega čiščenja lahko to privede do hitrega kopičenja nepotrebnih virov. Takšna preobremenitev ne le poveča porabo pomnilnika, ampak lahko tudi negativno vpliva na zmogljivost sistema. Z odstranjevanjem neuporabljenih virov Docker `prune` omogoča učinkovitejšo rabo sistemskih virov. To je še posebej pomembno v oblačnih okoljih, kjer se stroški povečujejo sorazmerno s povpraševanjem po prostora za shranjevanje in računalniških virih.

**Večja varnost:** Odvečni in zastareli viri Dockerja lahko predstavljajo varnostna tveganja. Docker `prune` odstrani neuporabljene kontejnerje, slike, omrežja in prostore, s čimer zmanjša verjetnost, da bi zastarele in potencialno ranljive komponente ostale nezaščitene. Z vzdrževanjem urejenega ekosistema Dockerja se zmanjša površina za napade in izboljša splošna varnostna raven vaše IT-infrastrukture.

**Povečanje zmogljivosti:** Preobremenjeno okolje Docker lahko zmanjša zmogljivost sistema, saj porablja nepotrebne vire, kot sta procesor in pomnilnik. Redno čiščenje z orodjem Docker `prune` sprosti prostor na disku ter izboljša učinkovitost upravljanja in izvajanja kontejnerjev. To ima za posledico znatno krajše čase nalaganja, hitrejše uvajanje aplikacij in boljšo splošno odzivnost sistema.

**Poenostavljeno vzdrževanje:** Redno izvajanje Docker `prune` znatno poenostavi vzdrževanje vašega Docker-okolja. Z odstranjevanjem neuporabljanih virov zmanjša zahtevnost upravljavskih nalog za razvijalce. To olajša spremljanje aktivnih in pomembnih Docker-komponent ter pospeši odpravljanje težav. Posledično ekipe prihranijo čas pri upravljanju in se lahko bolj osredotočijo na razvoj in izboljševanje svojih aplikacij, namesto da se ukvarjajo z odvečnimi viri.

## Kakšna je sintaksa Dockerja `prune`?

Imate **okolje Docker** in želite počistiti vire, da bi sprostili prostor na disku in poenostavili upravljanje? V tem primeru preprosto izvedite naslednji ukaz, da dostopate do `prune` storitev:

```bash
docker system prune
```

Docker privzeto prepozna ustavljene kontejnerje, neuporabljene slike, omrežja in prostore, ki jih je mogoče počistiti, ter vas pred odstranitvijo zaprosi za potrditev. Za nadaljevanje preprosto vnesite »y« in pritisnite tipko Enter. Alternativno lahko uporabite možnost `-f`, da preskočite potrditev in takoj izvedete čiščenje:

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

**Nasvet**: Pred uporabo Dockerja `prune` je priporočljivo preveriti, kateri Dockerjevi viri so trenutno prisotni v sistemu. Izvedite naslednje ukaze, da pridobite seznam vseh kontejnerjev, slik, omrežij in prostorskih enot:

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

### Možnosti Dockerja `prune`

V spodnji tabeli je prikazan pregled različnih možnosti `docker system prune`.

<table>
  <thead>
    <tr>
      <th>Možnost</th>
      <th>Opis</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`--all, -a`</td>
      <td>Odstrani vse neuporabljene vire Dockerja.</td>
    </tr>
    <tr>
      <td>`--force, -f`</td>
      <td>Očisti brez potrditve uporabnika.</td>
    </tr>
    <tr>
      <td>`--volumes`</td>
      <td>Odstrani neuporabljene prostore.</td>
    </tr>
    <tr>
      <td>`--filter, -f`</td>
      <td>Omogoča filtriranje virov, ki jih je treba odstraniti, v skladu z merili.</td>
    </tr>
    <tr>
      <td>`--help`</td>
      <td>Prikaže pomoč o uporabi ukaza.</td>
    </tr>
  </tbody>
</table>

## Kako uporabiti ukaz Docker `prune`

Docker ponuja različne ukaze, ki omogočajo ciljno čiščenje določenih vrst virov. To vam omogoča, da natančno določite, kateri viri naj se odstranijo.

### Docker `prune --filter`

Z **orodjem Filter** lahko nadzorujete izbor virov, ki jih želite odstraniti, kot so kontejnerji, slike, omrežja in diskovni prostori. To je koristno v razvojnih okoljih, kjer se lahko ustvari veliko začasnih virov, ki se hitro pozabijo.

**Splošna sintaksa je:**

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

**Med različnimi možnostmi filtriranja so:**

- `until`: Vire filtrira glede na datum njihove ustvaritve. Pri tem je lahko `<duration>` številčna vrednost z enoto, kot so `h` (ure), `m` (minute) ali `s` (sekunde).

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

**Primer:** Odstrani vse ustavljene kontejnerje, ki so starejši od 24 ur

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

- `label`: Filtriranje virov na podlagi njihovih oznak Docker

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

**Primer:** Počisti vse neuporabljene zbirke podatkov z oznako `mylabel`

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

- `dangling`: Odstrani vire, ki jih kontejner ne uporablja več

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

**Primer:** Odstrani vse slike, ki se ne uporabljajo več (visijo v zraku)\*

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

Poleg zgoraj navedenih glavnih filtrov so na voljo tudi bolj specifične možnosti filtriranja, odvisno od vrste vira:

- `before` in `since` za slike: filtrira slike glede na datum nastanka, bodisi pred določenim časovnim trenutkom bodisi od njega dalje
- `exited` za kontejnerje: filtrira kontejnerje na podlagi njihovega izhodnega stanja (na primer `exited=0` za uspešno zaključene kontejnerje)

### Kako odstraniti vire Dockerja

**Korak 1:** Odprite terminal ali ukazno vrstico v svojem sistemu.

**Korak 2:** Za čiščenje sistema zaženite Docker `prune`:

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

`{resource}` nadomestite s številko vrste virov, ki jih želite počistiti. Veljavne vrednosti so `container`, `image`, `volume` in `network`.

### Kako odstraniti Dockerjeve kontejnerje

Docker po privzetih nastavitvah ne **sprosti** kontejnerjev samodejno, ko ti zaključijo svoj življenjski cikel. Pomembno je, da redno preverjate ustavljene kontejnerje in jih po potrebi počistite, da sprostite zasedene vire za kontejnerje, ki še delujejo. Za to obstajata dve metodi.

- `docker rm`: Ukaz `docker rm` je namenjen **ročnemu** odstranjevanju enega ali več Dockerjevih kontejnerjev. Če natančno veste, katere kontejnerje želite izbrisati, je to ustrezna metoda. Izrecno morate navesti identifikacijske številke ali imena kontejnerjev, ki jih želite odstraniti, kar vam omogoča, da iz svojega okolja izbrišete le določene kontejnerje, ne da bi to vplivalo na ostale.

Tukaj je primer, kako izbrisati kontejnerja z imenoma `container1` in `container2`:

```bash
docker rm container1 container2
```

- `docker container prune`: Nasprotno pa je ukaz `docker container prune` namenjen **hkratnemu** odstranjevanju več ustavljenih **kontejnerjev**. Ta metoda je še posebej primerna za hitro in učinkovito sprostitev prostora z izbrisom vseh ustavljenih kontejnerjev, v katerih trenutno ne teče noben proces.

```bash
docker container prune
```

Tu so navedeni vsi zaustavljeni kontejnerji, Docker pa vas pred njihovim odstranitvijo zaprosi za potrditev. To je zelo praktično v okoljih, kjer se ustvari veliko začasnih kontejnerjev, ki kasneje postanejo nepotrebni.

Za vsakodnevno upravljanje in vzdrževanje vašega okolja Docker je priporočljivo **redno** uporabljati `docker container prune` za samodejno čiščenje ustavljenih kontejnerjev. Ta pristop prihrani čas in zagotavlja, da nobeni nepotrebni viri ne vplivajo na zmogljivost sistema. Nasprotno pa je `docker rm` idealen za ciljno in nadzorovano brisanje posameznih kontejnerjev, bodisi za testiranje, razvoj ali druge posebne potrebe.

### Kako odstraniti slike Dockerja

Dockerjeve slike so gradniki kontejnerjev. Sčasoma lahko imajo številne različne različice in oznake. Ko ustvarite ali posodobite nove slike, pogosto ostanejo stare ali neuporabljene slike, imenovane **»dangling**«. Te zasedajo prostor na disku v vašem sistemu in lahko vplivajo na zmogljivost, še posebej če je takih slik veliko.

Z Dockerjem `prune` lahko poiščete in odstranite slike, ki se ne uporabljajo več:

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

Možne **možnosti** so na primer:

- `-a`, `--all`: Ta možnost ne odstrani le slike brez povezave, temveč tudi neuporabljene slike. Neuporabljene slike so tiste, ki nimajo več oznak in na katere zato ni mogoče neposredno sklicevati z oznakami.

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

- `-f`, `--force`: Docker privzeto zahteva potrditev, preden se slike dejansko izbrišejo. Z `-f` ali `--force` lahko ta korak potrditve preskočite in čiščenje izvedete takoj.

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

### Kako odstraniti vse slike Dockerja

Prav tako lahko hitro in temeljito počistite vse slike Dockerja v sistemu, ki jih ne potrebujete več. Za učinkovito uporabo Dockerja `prune` najprej odprite terminal ali ukazno vrstico in vnesite naslednji ukaz:

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

Preden začnete s čiščenjem, se prepričajte, katere slike bodo odstranjene. Možnost `-a` lahko izbriše neuporabljene slike, ki jih morda še potrebujete.

### Kako odstraniti Dockerjeve zbirke podatkov

Volumi so **trajni** in ohranijo podatke tudi takrat, ko povezani kontejner ne deluje več. Sčasoma se ti volumi lahko povečajo in po nepotrebnem porabljajo vire.

```bash
docker volume prune
```

Ta ukaz poišče vse prostore, ki nimajo aktivnih kontejnerjev. Prikazal se bo seznam prostorov, ki so predlagani za odstranitev, pred izvedbo čiščenja pa je potrebno potrditev.

Nasprotno pa je ukaz `docker volume rm` namenjen izključno odstranjevanju posameznih Dockerjevih volumnov. To je lahko koristno, če točno veste, kateri volumen želite izbrisati, ne glede na to, ali ga trenutno uporablja kateri od kontejnerjev. Za odstranitev določenega Dockerjevega volumna uporabite ukaz `docker volume rm`, ki mu sledi ime ali ID volumna:

```bash
docker volume rm volume_name
```

Še enkrat se prepričajte, da poznate ime ali ID zbirke, ki jo želite izbrisati, saj ta ukaz podatke trajno izbriše in tega ni mogoče preklicati.

### Kako odstraniti omrežja Dockerja

V Dockerju so omrežja temeljna sestavina, ki omogoča komunikacijo med kontejnerji, ne glede na to, ali se nahajajo na istem gostitelju ali so razporejeni po več gostiteljih. **Omrežja v Dockerju** ostanejo ohranjena tudi po tem, ko so kontejnerji zaključeni ali odstranjeni. Sčasoma lahko to privede do kopičenja neuporabljanih omrežij, ki po nepotrebnem porabljajo vire. Ukaz `docker prune network` je preprost način za prepoznavanje in odstranjevanje teh neuporabljanih omrežij.

Ukaz ima naslednjo obliko:

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

Docker ustvari seznam vseh omrežij, ki jih aktivni kontejnerji ne uporabljajo več ali na katera ni več sklicev. Pred dejanskim odstranitvijo omrežij se zahteva potrditev.

### Najboljše prakse za Docker `prune`

- **Avtomatsko čiščenje:** Uporabljajte avtomatizirane skripte ali orodja za redno čiščenje Dockerjevih slik, kontejnerjev in prostora, ki jih ne potrebujete več. S tem ohranjate urejeno okolje in optimizirate zmogljivost.
- **Varnostne popravke in posodobitve:** Redno preverjajte varnostne posodobitve in popravke za Dockerjeve motorje, gostiteljske operacijske sisteme in vse Dockerjeve slike. Posodabljanje teh komponent pomaga zmanjšati morebitne varnostne ranljivosti.
- **Spremljanje in beleženje:** Uporabite orodja za spremljanje in beleženje, da spremljate zmogljivost kontejnerjev, zaznavate nepričakovane dogodke in spodbujate proaktivno vzdrževanje.
- **Zunanje varnostno kopiranje:** Vzpostavite rutine za zunanje varnostno kopiranje pomembnih podatkov iz Dockerjevih kontejnerjev, na primer redno varnostno kopiranje vsebine baz podatkov ali konfiguracijskih datotek.
- **Ročni pregled pred odstranitvijo:** Pred odstranitvijo določenih virov pazljivo preverite, ali jih še potrebujete. S tem boste zmanjšali tveganje za naključno izgubo podatkov ali prekinitve tekočih procesov.

Tip Če šele začenjate z Dockerjem, vam priporočamo, da si preberete naš izčrpen [vodnik po Dockerju](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/vodnik-po-dockerju-namestitev-in-prvi-koraki/).


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/docker-prune/](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/docker-prune/) for AI/LLM consumption.