# Slik bruker du Docker prune – veiledning med eksempler

Docker `prune` **fjerner unødvendige elementer** som stoppede containere, ubrukte volumer og gamle nettverk eller bilder. Dette bidrar til å optimalisere harddiskbruken og frigjør lagringsplass.

## Hva er Docker `prune`?

Docker `prune` eller `system prune` er nyttig for **å rydde opp** i Docker-ressurser som ikke lenger er nødvendige, slik at du kan frigjøre minne. Hvis Docker-containere, -bilder, -nettverk og -volumer står ubrukt over lengre tid, kan de oppta betydelig diskplass. Med `prune` kan du raskt fjerne disse ubrukte ressursene, slik at systemet ditt holdes ryddig og yter optimalt.

Spesielt i **utviklingsmiljøer**, der nye containere ofte opprettes og testes, kan det samle seg opp et betydelig antall foreldede objekter. Docker `prune` fjerner effektivt ikke bare ubrukte containere og bilder, men også nettverk og volumer som ikke lenger er nødvendige. Dette effektiviserer administrasjonen av Docker-ressurser og minimerer risikoen for et rotete og overbelastet system.

## Hva brukes Docker `prune` til?

Kommandoen `prune` egner seg til ulike situasjoner i det daglige arbeidet med Docker. Nedenfor har vi listet opp fire typiske bruksscenarier.

**Optimaliser arbeidsprosesser:** Docker-miljøer brukes ofte til utvikling, testing og produksjon. Uten regelmessig opprydding kan dette føre til en rask opphopning av unødvendige ressurser. En slik overbelastning øker ikke bare minneforbruket, men kan også påvirke systemytelsen negativt. Ved å fjerne ubrukte ressurser muliggjør Docker `prune` en mer effektiv utnyttelse av systemressursene. Dette er spesielt viktig i skybaserte miljøer, der kostnadene stiger i takt med etterspørselen etter lagrings- og databehandlingsressurser.

**Økt sikkerhet:** Overflødige og foreldede Docker-ressurser kan utgjøre en sikkerhetsrisiko. Docker `prune` fjerner ubrukte containere, bilder, nettverk og volumer, noe som reduserer risikoen for at foreldede og potensielt sårbare komponenter blir stående ubeskyttet. Ved å holde Docker-miljøet ryddig minimeres angrepsflaten og styrkes den generelle sikkerheten i IT-infrastrukturen din.

**Økt ytelse:** Et overbelastet Docker-miljø kan redusere systemytelsen ved å bruke unødvendige ressurser som CPU og minne. Regelmessig opprydding med Docker `prune` frigjør diskplass og forbedrer effektiviteten i containeradministrasjon og -kjøring. Dette gir betydelig kortere lastetider, raskere distribusjon av applikasjoner og bedre respons fra systemet generelt.

**Enklere vedlikehold:** Å kjøre Docker `prune` regelmessig forenkler vedlikeholdet av Docker-miljøet ditt betydelig. Ved å fjerne ubrukte ressurser reduseres kompleksiteten i administrasjonsoppgavene for utviklere. Dette gjør det enklere å holde oversikt over aktive og relevante Docker-komponenter, noe som gjør feilsøkingen raskere. Dermed sparer teamene tid på administrasjon og kan konsentrere seg mer om å utvikle og forbedre applikasjonene sine, i stedet for å måtte håndtere overflødige ressurser.

## Hva er syntaksen for Docker `prune`?

Har du et **Docker-miljø** og ønsker å rydde opp i ressursene for å frigjøre diskplass og forenkle administrasjonen? I så fall kan du bare kjøre følgende kommando for å få tilgang til `prune` tjenester:

```bash
docker system prune
```

Som standard identifiserer Docker stoppede containere, ubrukte bilder, nettverk og volumer som kan ryddes opp, og ber deg om bekreftelse før de fjernes. Bare skriv inn y og trykk Enter-tasten for å fortsette. Alternativt kan du bruke alternativet `-f` for å hoppe over bekreftelsen og kjøre oppryddingen umiddelbart:

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

**Tips**: Det er lurt å sjekke hvilke Docker-ressurser som for øyeblikket finnes på systemet før du tar i bruk D `prune`. Kjør følgende kommandoer for å få en liste over alle containere, bilder, nettverk og volumer:

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

### Docker `prune` -alternativer

Tabellen nedenfor gir deg en oversikt over de ulike alternativene i vers `docker system prune`.

<table>
  <thead>
    <tr>
      <th>Alternativ</th>
      <th>Beskrivelse</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`--all, -a`</td>
      <td>Fjerner alle ubrukte Docker-ressurser.</td>
    </tr>
    <tr>
      <td>`--force, -f`</td>
      <td>Utfører oppryddingen uten bekreftelse fra brukeren.</td>
    </tr>
    <tr>
      <td>`--volumes`</td>
      <td>Fjerner ubrukte volumer.</td>
    </tr>
    <tr>
      <td>`--filter, -f`</td>
      <td>Tillater filtrering av ressursene som skal fjernes i henhold til kriterier.</td>
    </tr>
    <tr>
      <td>`--help`</td>
      <td>Viser hjelp om hvordan kommandoen brukes.</td>
    </tr>
  </tbody>
</table>

## Slik bruker du kommandoen Docker `prune`

Docker tilbyr ulike kommandoer som gjør det mulig å rydde opp i bestemte ressurstyper. Dette gir deg fleksibilitet til å bestemme nøyaktig hvilke ressurser som skal fjernes.

### Docker `prune --filter`

Du kan bruke **Filter** til å styre hvilke ressurser som skal fjernes, for eksempel containere, bilder, nettverk og volumer. Dette er nyttig i utviklingsmiljøer hvor mange midlertidige ressurser kan opprettes og glemmes raskt.

**Den generelle syntaksen er:**

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

**De ulike filteralternativene omfatter:**

- `until`: Filtrerer ressurser basert på opprettelsesdato. Her kan `<duration>` være en numerisk verdi med en enhet, for eksempel `h` (timer), `m` (minutter) eller `s` (sekunder).

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

**Eksempel:** Fjern alle stoppede containere som er eldre enn 24 timer

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

- `label`: Filtrerer ressurser basert på deres Docker-etiketter

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

**Eksempel:** Fjern alle ubrukte volumer med etiketten `mylabel`

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

- `dangling`: Filtrerer ressurser som ikke lenger brukes av en container

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

**Eksempel:** Fjern alle bilder som ikke lenger brukes (løse bilder)\*

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

I tillegg til hovedfiltrene nevnt ovenfor finnes det også mer spesifikke filteralternativer avhengig av ressurstypen:

- `before` og `since` for bilder: Filtrerer bilder basert på opprettelsesdato, enten før eller etter et bestemt tidspunkt
- `exited` for containere: Filtrerer containere basert på avslutningsstatus (for eksempel `exited=0` for containere som er avsluttet med suksess)

### Slik fjerner du Docker-ressurser

**Trinn 1:** Åpne en terminal eller kommandolinje på datamaskinen din.

**Trinn 2:** Kjør Docker `prune` for å rydde opp i systemet:

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

Erstatt `{resource}` med typen ressurser du ønsker å rydde opp i. Gyldige verdier er `container`, `image`, `volume` og `network`.

### Slik fjerner du Docker-containere

Som standard **frigjør** ikke Docker containere automatisk etter at de har fullført livssyklusen sin. Det er viktig å sjekke de stoppede containerne jevnlig og rydde opp i dem etter behov for å frigjøre opptatte ressurser til containere som er i drift. Det finnes to metoder for å gjøre dette.

- `docker rm`: Kommandoen `docker rm` er ment for å fjerne én eller flere Docker-containere **manuelt**. Hvis du vet nøyaktig hvilke containere du vil slette, er dette den riktige metoden. Du må eksplisitt angi ID-ene eller navnene på containerne du ønsker å fjerne, slik at du kun sletter bestemte containere fra miljøet ditt uten å påvirke andre.

Her er et eksempel på hvordan du sletter containerne med navnene `container1` og `container2`:

```bash
docker rm container1 container2
```

- `docker container prune`: I motsetning til dette er `docker container prune` en kommando som har til formål å fjerne flere stoppede **containere samtidig**. Denne metoden egner seg spesielt godt til å frigjøre plass raskt og effektivt ved å slette alle stoppede containere som for øyeblikket ikke har noen aktive prosesser.

```bash
docker container prune
```

Alle stoppede containere vises her, og Docker ber om bekreftelse før de fjernes. Dette er svært praktisk i miljøer hvor det opprettes mange midlertidige containere som senere blir overflødige.

For den daglige driften og vedlikeholdet av Docker-miljøet ditt anbefales det å bruke `docker container prune` **regelmessig** for automatisk å rydde opp i stoppede containere. Denne fremgangsmåten sparer tid og sikrer at unødvendige ressurser ikke påvirker systemytelsen. Derimot er `docker rm` ideelt for å slette bestemte containere på en målrettet og kontrollert måte, enten det er for testing, utvikling eller andre spesifikke behov.

### Slik fjerner du Docker-bilder

Docker-bilder er byggesteinene i containere. De kan få mange forskjellige versjoner og tagger over tid. Når du oppretter eller oppdaterer nye bilder, sitter du ofte igjen med gamle eller ubrukte bilder, såkalte **«dangling»-bilder**. Disse tar opp diskplass på systemet ditt og kan påvirke ytelsen, spesielt hvis det er mange slike bilder.

Med Docker `prune` kan du identifisere og fjerne bilder som ikke lenger er i bruk:

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

Mulige **alternativer** her er for eksempel:

- `-a`, `--all`: Dette alternativet fjerner ikke bare bilder uten tilknytning, men også ubrukte bilder. Ubrukte bilder er bilder som ikke lenger har tagger og derfor ikke kan refereres til direkte ved hjelp av tagger.

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

- `-f`, `--force`: Som standard ber Docker om bekreftelse før bildene faktisk slettes. Med `-f` eller `--force` kan du hoppe over dette bekreftelsestrinnet og utføre oppryddingen umiddelbart.

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

### Slik fjerner du alle Docker-bilder

Du kan også raskt og grundig rydde opp i alle Docker-bilder på systemet ditt som ikke lenger er nødvendige. For å bruke Docker `prune` effektivt, må du først åpne terminalen eller kommandoprompten og skrive inn følgende kommando:

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

Sørg for å sjekke hvilke bilder som vil bli slettet før du fortsetter med oppryddingen. Alternativ `-a` kan slette ubrukte bilder som du kanskje fortsatt trenger.

### Slik fjerner du Docker-volumer

Volumer er **permanente** og beholder data selv når den tilknyttede containeren ikke lenger kjører. Over tid kan disse volumene vokse og bruke unødvendig mye ressurser.

```bash
docker volume prune
```

Denne kommandoen søker etter alle volumer som ikke har noen aktive containere. Du vil få opp en liste over volumer som foreslås fjernet, og du må bekrefte før oppryddingen utføres.

Derimot er `docker volume rm` en kommando som spesifikt fjerner enkeltstående Docker-volumer. Dette kan være nyttig hvis du vet nøyaktig hvilket volum du vil slette, uavhengig av om det for øyeblikket er i bruk av en container. For å fjerne et bestemt Docker-volum, bruk kommandoen `docker volume rm` etterfulgt av volumets navn eller ID:

```bash
docker volume rm volume_name
```

Sørg igjen for at du vet navnet eller ID-en til volumet som skal slettes, da denne kommandoen sletter dataene permanent og ikke kan angres.

### Slik fjerner du Docker-nettverk

I Docker er nettverk en grunnleggende komponent som gjør at containere kan kommunisere med hverandre, uansett om de befinner seg på samme vert eller er spredt over flere verter. **Docker-nettverk** forblir aktive selv etter at containere er avsluttet eller fjernet. Over tid kan dette føre til en opphopning av ubrukte nettverk som bruker ressurser unødvendig. Kommandoen `docker prune network` er en enkel måte å identifisere og fjerne disse ubrukte nettverkene på.

Kommandoen har følgende format:

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

Docker genererer en liste over alle nettverk som ikke lenger brukes av aktive containere eller som det ikke lenger henvises til. Det blir deretter bedt om bekreftelse før nettverkene faktisk fjernes.

### Beste praksis for Docker `prune`

- **Automatisk opprydding:** Bruk automatiserte skript eller verktøy til regelmessig å rydde opp i Docker-bilder, containere og volumer som ikke lenger er nødvendige. Dette holder miljøet ryddig og optimaliserer ytelsen.
- **Sikkerhetsoppdateringer og oppdateringer:** Sjekk regelmessig etter sikkerhetsoppdateringer og oppdateringer for Docker-motorer, vertsoperativsystemer og alle Docker-bilder. Å holde disse komponentene oppdatert bidrar til å minimere potensielle sikkerhetsrisikoer.
- **Overvåking og loggføring:** Bruk overvåkings- og loggføringsverktøy for å overvåke containerytelsen, oppdage uventede hendelser og fremme proaktivt vedlikehold.
- **Ekstern sikkerhetskopiering:** Etabler rutiner for ekstern sikkerhetskopiering av viktige data fra Docker-containere, for eksempel regelmessig sikkerhetskopiering av databaseinnhold eller konfigurasjonsfiler.
- **Manuell sjekk før fjerning:** Sjekk nøye om du ikke lenger trenger visse ressurser før du fjerner dem. Dette vil minimere risikoen for utilsiktet datatap eller avbrudd i kjørende prosesser.

Tip Hvis du nettopp har begynt å bruke Docker, anbefaler vi at du leser vår omfattende [veiledning om Docker](https://www.ionos.com/nb-no/digitalguide/server/konfigurasjon/docker-veiledning-installasjon-og-foerste-skritt/).


This is a markdown version of: [https://www.ionos.com/nb-no/digitalguide/server/konfigurasjon/docker-prune/](https://www.ionos.com/nb-no/digitalguide/server/konfigurasjon/docker-prune/) for AI/LLM consumption.