# Sådan bruger du Docker prune – vejledning med eksempler

Docker `prune` **fjerner unødvendige elementer** såsom stoppede containere, ubrugte volumener og gamle netværk eller billeder. Dette bidrager til at optimere harddiskforbruget og frigør lagerplads.

## Hvad er Docker `prune`?

Docker `prune` eller `system prune` er nyttigt til **systematisk at rydde op** i Docker-ressourcer, der ikke længere er nødvendige, hvilket hjælper dig med at frigøre hukommelse. Hvis Docker-containere, -billeder, -netværk og -volumener står ubrugte hen i længere tid, kan de optage en betydelig mængde diskplads. Med `prune` kan du hurtigt fjerne disse ubrugte ressourcer, så dit system forbliver rent og fungerer optimalt.

Især i **udviklingsmiljøer**, hvor der ofte oprettes og testes nye containere, kan der samle sig et betydeligt antal forældede objekter. Docker `prune` fjerner effektivt ikke blot ubrugte containere og billeder, men også netværk og volumener, der ikke længere er nødvendige. Dette strømliner administrationen af Docker-ressourcer og minimerer risikoen for et rodet og overbelastet system.

## Hvad bruges Docker `prune` til?

Kommandoen `prune` er velegnet til forskellige situationer i det daglige arbejde med Docker. Nedenfor har vi opstillet fire typiske anvendelsesscenarier.

**Optimering af arbejdsprocesser:** Docker-miljøer anvendes ofte til udvikling, test og produktion. Uden regelmæssig oprydning kan dette føre til en hurtig ophobning af unødvendige ressourcer. En sådan overbelastning øger ikke blot hukommelsesforbruget, men kan også påvirke systemets ydeevne negativt. Ved at fjerne ubrugte ressourcer muliggør Docker `prune` en mere effektiv udnyttelse af systemressourcerne. Dette er især vigtigt i cloud-baserede miljøer, hvor omkostningerne stiger i takt med efterspørgslen efter lager- og computerressourcer.

**Øget sikkerhed:** Overflødige og forældede Docker-ressourcer kan udgøre en sikkerhedsrisiko. Docker `prune` fjerner ubrugte containere, billeder, netværk og volumener, hvilket mindsker risikoen for, at forældede og potentielt sårbare komponenter står ubeskyttet tilbage. Ved at holde Docker-miljøet rent minimeres angrebsfladen, og den samlede sikkerhed i din IT-infrastruktur styrkes.

**Forbedret ydeevne:** Et overbelastet Docker-miljø kan hæmme systemets ydeevne ved at forbruge unødvendige ressourcer som CPU og hukommelse. Regelmæssig oprydning med Docker `prune` frigør diskplads og øger effektiviteten i containerhåndtering og -kørsel. Dette resulterer i markant kortere indlæsningstider, hurtigere implementering af applikationer og forbedret samlet systemrespons.

**Forenklet vedligeholdelse:** Regelmæssig kørsel af Docker `prune` forenkler vedligeholdelsen af dit Docker-miljø betydeligt. Ved at fjerne ubrugte ressourcer mindskes kompleksiteten i administrationsopgaverne for udviklerne. Det gør det nemmere at holde styr på aktive og relevante Docker-komponenter, hvilket fremskynder fejlfinding. Dermed sparer teams tid på administration og kan i stedet fokusere mere på at udvikle og forbedre deres applikationer frem for at beskæftige sig med overflødige ressourcer.

## Hvordan ser syntaksen for Docker `prune` ud?

Har du et **Docker-miljø** og ønsker du at rydde op i ressourcerne for at frigøre diskplads og forenkle administrationen? I så fald skal du blot køre følgende kommando for at få adgang til `prune` tjenester:

```bash
docker system prune
```

Som standard identificerer Docker stoppede containere, ubrugte billeder, netværk og volumener, der kan ryddes op, og beder dig om bekræftelse, før de fjernes. Du skal blot skrive y og trykke på Enter-tasten for at fortsætte. Du kan også bruge indstillingen `-f` til at springe bekræftelsen over og køre oprydningen med det samme:

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

**Tip**: Det kan være en god idé at tjekke, hvilke Docker-ressourcer der i øjeblikket findes på systemet, inden du tager Docker `prune` i brug. Udfør følgende kommandoer for at få en liste over alle containere, billeder, netværk og volumener:

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

### Docker `prune` -indstillinger

Nedenstående tabel giver et overblik over de forskellige muligheder i `docker system prune`.

<table>
  <thead>
    <tr>
      <th>Valgmulighed</th>
      <th>Beskrivelse</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`--all, -a`</td>
      <td>Fjerner alle ubrugte Docker-ressourcer.</td>
    </tr>
    <tr>
      <td>`--force, -f`</td>
      <td>Udfører oprydningen uden brugerbekræftelse.</td>
    </tr>
    <tr>
      <td>`--volumes`</td>
      <td>Fjerner ubrugte volumener.</td>
    </tr>
    <tr>
      <td>`--filter, -f`</td>
      <td>Giver mulighed for at filtrere de ressourcer, der skal fjernes, efter bestemte kriterier.</td>
    </tr>
    <tr>
      <td>`--help`</td>
      <td>Viser hjælp til, hvordan kommandoen bruges.</td>
    </tr>
  </tbody>
</table>

## Sådan bruger du kommandoen Docker `prune`

Docker tilbyder en række kommandoer, der gør det muligt at rydde op i bestemte typer ressourcer. Det giver dig fleksibilitet til præcist at bestemme, hvilke ressourcer der skal fjernes.

### Docker `prune --filter`

Du kan bruge **filteret** til at styre udvælgelsen af de ressourcer, der skal fjernes, f.eks. containere, billeder, netværk og diskenheder. Dette er en fordel i udviklingsmiljøer, hvor der hurtigt kan oprettes mange midlertidige ressourcer, som man glemmer.

**Den generelle syntaks er:**

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

**De forskellige filtermuligheder omfatter:**

- `until`: Filtrerer ressourcer ud fra deres oprettelsesdato. Her kan `<duration>` være et tal med en enhed, f.eks. `h` (timer), `m` (minutter) eller `s` (sekunder).

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

**Eksempel:** Fjern alle stoppede containere, der er ældre end 24 timer

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

- `label`: Filtrerer ressourcer ud fra deres Docker-mærker

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

**Eksempel:** Ryd alle ubrugte volumener med mærket `mylabel`

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

- `dangling`: Filtrerer ressourcer, der ikke længere bruges af en container

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

**Eksempel:** Fjern alle billeder, der ikke længere bruges (løse billeder)\*

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

Ud over de ovenfor nævnte hovedfiltre findes der også mere specifikke filtreringsmuligheder afhængigt af ressourcetypen:

- `before` og `since` for billeder: Filtrerer billeder ud fra deres oprettelsesdato, enten før eller siden et bestemt tidspunkt
- `exited` for containere: Filtrerer containere baseret på deres afslutningsstatus (for eksempel `exited=0` for containere, der er afsluttet med succes)

### Sådan fjerner du Docker-ressourcer

**Trin 1:** Åbn en terminal eller kommandolinje på din computer.

**Trin 2:** Kør Docker `prune` for at rydde op i systemet:

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

Erstat `{resource}` med den type ressourcer, du vil rydde op i. Gyldige værdier er `container`, `image`, `volume` og `network`.

### Sådan fjerner du Docker-containere

Som standard **frigiver** Docker ikke automatisk containere, når de har afsluttet deres livscyklus. Det er vigtigt regelmæssigt at kontrollere de stoppede containere og rydde op i dem efter behov for at frigøre blokerede ressourcer til kørende containere. Der findes to metoder til at gøre dette.

- `docker rm`: Kommandoen `docker rm` er beregnet til **manuelt** at fjerne en eller flere Docker-containere. Hvis du ved præcis, hvilke containere du vil slette, er dette den rette metode. Du skal udtrykkeligt angive ID’erne eller navnene på de containere, du ønsker at fjerne, hvilket giver dig mulighed for kun at slette bestemte containere fra dit miljø uden at påvirke andre.

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

```bash
docker rm container1 container2
```

- `docker container prune`: I modsætning hertil er `docker container prune` en kommando, der har til formål at fjerne flere stoppede **containere på én gang**. Denne metode er særligt velegnet til hurtigt og effektivt at frigøre plads ved at slette alle stoppede containere, der i øjeblikket ikke har nogen kørende processer.

```bash
docker container prune
```

Alle stoppede containere vises her, og Docker beder dig om at bekræfte, før de fjernes. Dette er meget praktisk i miljøer, hvor der oprettes mange midlertidige containere, som senere bliver overflødige.

Til den daglige administration og vedligeholdelse af dit Docker-miljø anbefales det at bruge `docker container prune` **regelmæssigt** til automatisk at rydde op i stoppede containere. Denne fremgangsmåde sparer tid og sikrer, at unødvendige ressourcer ikke påvirker systemets ydeevne. Derimod er `docker rm` ideel til at slette bestemte containere på en målrettet og kontrolleret måde, hvad enten det er til test, udvikling eller andre specifikke behov.

### Sådan fjerner du Docker-billeder

Docker-billeder er byggestenene i containere. De kan få mange forskellige versioner og tags over tid. Når du opretter eller opdaterer nye billeder, ender du ofte med gamle eller ubrugte billeder, der kaldes **»dangling**«. Disse optager diskplads på dit system og kan påvirke ydeevnen, især hvis der er mange af sådanne billeder.

Med Docker `prune` kan du finde og fjerne billeder, der ikke længere bruges:

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

Mulige **valgmuligheder** her er for eksempel:

- `-a`, `--all`: Denne indstilling fjerner ikke kun billeder uden tilknyttede tags, men også ubrugte billeder. Ubrugte billeder er billeder, der ikke længere har nogen tags og derfor ikke kan henvises til direkte via tags.

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

- `-f`, `--force`: Som standard beder Docker om bekræftelse, før billederne rent faktisk slettes. Med `-f` eller `--force` kan du springe dette bekræftelsestrin over og udføre oprydningen med det samme.

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

### Sådan fjerner du alle Docker-billeder

Du kan også hurtigt og grundigt rydde op i alle Docker-billeder på dit system, som ikke længere er nødvendige. For at bruge Docker `prune` effektivt skal du først åbne terminalen eller kommandoprompten og indtaste følgende kommando:

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

Sørg for at tjekke, hvilke billeder der vil blive slettet, inden du går i gang med oprydningen. Indstillingen `-a` kan slette ubrugte billeder, som du måske stadig har brug for.

### Sådan fjerner du Docker-volumener

Volumener er **permanente** og bevarer data, selv når den tilknyttede container ikke længere kører. Over tid kan disse volumener vokse og forbruge unødvendige ressourcer.

```bash
docker volume prune
```

Denne kommando søger efter alle volumener, der ikke har nogen aktive containere. Du får vist en liste over volumener, der foreslås fjernet, og du skal bekræfte, før oprydningen udføres.

Derimod er `docker volume rm` en kommando, der specifikt fjerner enkelte Docker-volumener. Dette kan være nyttigt, hvis du ved præcis, hvilket volumen du vil slette, uanset om det i øjeblikket bruges af en container. For at fjerne et bestemt Docker-volumen skal du bruge kommandoen `docker volume rm` efterfulgt af volumenets navn eller ID:

```bash
docker volume rm volume_name
```

Sørg igen for, at du kender navnet eller ID’et på det drev, der skal slettes, da denne kommando sletter dataene permanent og ikke kan fortrydes.

### Sådan fjerner du Docker-netværk

I Docker er netværk en grundlæggende komponent, der gør det muligt for containere at kommunikere med hinanden, uanset om de befinder sig på samme vært eller er spredt over flere værter. **Docker-netværk** forbliver aktive, selv efter at containere er blevet lukket ned eller fjernet. Over tid kan dette føre til en ophobning af ubrugte netværk, der unødigt bruger ressourcer. Kommandoen `docker prune network` er en nem måde at identificere og fjerne disse ubrugte netværk på.

Kommandoen har følgende format:

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

Docker genererer en liste over alle netværk, der ikke længere bruges af aktive containere eller ikke længere henvises til. Der anmodes derefter om bekræftelse, før netværkene rent faktisk fjernes.

### Gode råd til Docker `prune`

- **Automatisk oprydning:** Brug automatiserede scripts eller værktøjer til regelmæssigt at rydde op i Docker-billeder, containere og volumener, der ikke længere er nødvendige. Dette holder miljøet rent og optimerer ydeevnen.
- **Sikkerhedsrettelser og opdateringer:** Tjek regelmæssigt for sikkerhedsopdateringer og rettelser til Docker-motorer, værtsoperativsystemer og alle Docker-billeder. At holde disse komponenter opdaterede hjælper med at minimere potentielle sikkerhedsrisici.
- **Overvågning og logning:** Brug overvågnings- og logningsværktøjer til at overvåge containerens ydeevne, opdage uventede hændelser og fremme proaktiv vedligeholdelse.
- **Ekstern backup:** Etabler rutiner for eksterne backups af vigtige data fra Docker-containere, f.eks. regelmæssig backup af databaseindhold eller konfigurationsfiler.
- **Manuel kontrol før fjernelse:** Kontroller omhyggeligt, om du ikke længere har brug for bestemte ressourcer, før du fjerner dem. Dette minimerer risikoen for utilsigtet datatab eller afbrydelser i kørende processer.

Tip Hvis du lige er begyndt at bruge Docker, anbefaler vi, at du læser vores omfattende [Docker-vejledning](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/docker-vejledning-installation-og-de-foerste-skridt/).


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