# Hoe Docker prune te gebruiken – tutorial met voorbeelden

Docker `prune` **verwijdert onnodige objecten** zoals gestopte containers, ongebruikte volumes en oude netwerken of afbeeldingen. Dit helpt het gebruik van de harde schijf te optimaliseren en maakt opslagruimte vrij.

## Wat is Docker `prune`?

Docker `prune` of `system prune` is handig om Docker-bronnen die niet langer nodig zijn **systematisch op te ruimen**, waardoor u geheugen vrijmaakt. Als Docker-containers, afbeeldingen, netwerken en volumes lange tijd ongebruikt blijven, kunnen ze een aanzienlijke hoeveelheid schijfruimte in beslag nemen. Met `prune` kunt u deze ongebruikte bronnen snel verwijderen, waardoor uw systeem schoon blijft en optimaal presteert.

Vooral in **ontwikkelomgevingen**, waar vaak nieuwe containers worden aangemaakt en getest, kan een aanzienlijk aantal verouderde objecten worden opgeslagen. Docker `prune` verwijdert niet alleen ongebruikte containers en afbeeldingen, maar ook netwerken en volumes die niet langer nodig zijn. Dit stroomlijnt het beheer van Docker-bronnen en minimaliseert het risico op een rommelig, overbelast systeem.

## Waarvoor wordt Docker `prune` gebruikt?

Het commando `prune` is geschikt voor verschillende situaties in het dagelijkse werk met Docker. Hieronder hebben we vier typische scenario’s voor het gebruik ervan op een rijtje gezet.

**Werkprocessen optimaliseren:** Docker-omgevingen worden vaak gebruikt voor ontwikkeling, testen en productie. Zonder regelmatige opschoning kan dit leiden tot een snelle ophoping van onnodige bronnen. Een dergelijke overbelasting verhoogt niet alleen het geheugengebruik, maar kan ook een negatieve invloed hebben op de systeemprestaties. Door ongebruikte bronnen te verwijderen, maakt Docker `prune` een efficiënter gebruik van systeembronnen mogelijk. Dit is vooral belangrijk in cloudgebaseerde omgevingen, waar de kosten stijgen naarmate de vraag naar opslag- en rekenbronnen toeneemt.

**Verhoog de veiligheid:** Overbodige en verouderde Docker-bronnen kunnen veiligheidsrisico’s opleveren. Docker `prune` verwijdert ongebruikte containers, images, netwerken en volumes, waardoor de kans kleiner wordt dat verouderde en mogelijk kwetsbare componenten onbeschermd blijven. Door een schoon Docker-ecosysteem te onderhouden, minimaliseert u het aanvalsoppervlak en verbetert u de algehele veiligheid van uw IT-infrastructuur.

**Prestaties verbeteren:** een overbelaste Docker-omgeving kan de systeemprestaties belemmeren door onnodige bronnen zoals CPU en geheugen te verbruiken. Regelmatig opschonen met Docker `prune` maakt schijfruimte vrij en verbetert de efficiëntie van containerbeheer en -uitvoering. Dit resulteert in aanzienlijk kortere laadtijden, snellere applicatie-implementaties en een verbeterde algehele systeemresponsiviteit.

**Vereenvoudigd onderhoud:** Door Docker `prune` regelmatig uit te voeren, wordt het onderhoud van uw Docker-omgeving aanzienlijk vereenvoudigd. Door ongebruikte bronnen te verwijderen, worden beheertaken voor ontwikkelaars minder complex. Hierdoor is het eenvoudiger om actieve en relevante Docker-componenten bij te houden, wat het oplossen van problemen versnelt. Als gevolg hiervan besparen teams tijd op administratie en kunnen ze zich meer richten op het ontwikkelen en verbeteren van hun applicaties in plaats van zich bezig te houden met overbodige bronnen.

## Wat is de syntaxis van Docker `prune`?

Heb je een **Docker-omgeving** en wil je resources opschonen om schijfruimte vrij te maken en het beheer te vereenvoudigen? Voer in dat geval gewoon de volgende opdracht uit om toegang te krijgen tot `prune` services:

```bash
docker system prune
```

Standaard identificeert Docker gestopte containers, ongebruikte images, netwerken en volumes die kunnen worden opgeruimd en vraagt het u om bevestiging voordat deze worden verwijderd. Voer gewoon y in en druk op de Enter-toets om door te gaan. U kunt ook de optie `-f` gebruiken om de bevestiging over te slaan en de opruiming onmiddellijk uit te voeren:

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

**Tip**: Het is handig om te controleren welke Docker-bronnen momenteel op het systeem aanwezig zijn voordat u Docker `prune` gebruikt. Voer de volgende opdrachten uit om een lijst met alle containers, afbeeldingen, netwerken en volumes te krijgen:

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

### Docker `prune` opties

De volgende tabel geeft u een overzicht van de verschillende opties van `docker system prune`.

<table>
  <thead>
    <tr>
      <th>Optie</th>
      <th>Beschrijving</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`--all, -a`</td>
      <td>Verwijdert alle ongebruikte Docker-bronnen.</td>
    </tr>
    <tr>
      <td>`--force, -f`</td>
      <td>Voert de opschoning uit zonder bevestiging van de gebruiker.</td>
    </tr>
    <tr>
      <td>`--volumes`</td>
      <td>Verwijdert ongebruikte volumes.</td>
    </tr>
    <tr>
      <td>`--filter, -f`</td>
      <td>Maakt het mogelijk om de te verwijderen bronnen te filteren op basis van criteria.</td>
    </tr>
    <tr>
      <td>`--help`</td>
      <td>Geeft hulp weer over het gebruik van de opdracht.</td>
    </tr>
  </tbody>
</table>

## Hoe het commando Docker `prune` toe te passen

Docker biedt verschillende commando’s waarmee specifieke soorten bronnen gericht kunnen worden opgeschoond. Dit geeft u de flexibiliteit om precies te bepalen welke bronnen moeten worden verwijderd.

### Docker `prune --filter`

U kunt **Filter** gebruiken om de selectie van te verwijderen bronnen te beheren, zoals containers, afbeeldingen, netwerken en volumes. Dit is handig in ontwikkelomgevingen waar veel tijdelijke bronnen kunnen worden aangemaakt en snel worden vergeten.

**De algemene syntaxis is:**

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

**De verschillende filteropties zijn onder andere:**

- `until`: Filtert bronnen op basis van hun aanmaakdatum. Hier kan `<duration>` een numerieke waarde zijn met een eenheid zoals `h` (uren), `m` (minuten) of `s` (seconden).

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

**Voorbeeld:** verwijder alle gestopte containers die ouder zijn dan 24 uur.

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

- `label`: Filtert bronnen op basis van hun Docker-labels

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

**Voorbeeld:** Ruim alle ongebruikte volumes op die het label `mylabel` hebben.

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

- `dangling`: Filtert bronnen die niet langer door een container worden gebruikt

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

**Voorbeeld:** verwijder alle niet meer gebruikte (loshangende) afbeeldingen\*

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

Naast de hierboven genoemde hoofdfilters zijn er ook meer specifieke filteropties, afhankelijk van het type bron:

- `before` en `since` voor afbeeldingen: filtert afbeeldingen op basis van hun aanmaakdatum, vóór of sinds een bepaald tijdstip
- `exited` voor containers: filtert containers op basis van hun exitstatus (bijvoorbeeld `exited=0` voor succesvol beëindigde containers)

### Hoe Docker-bronnen verwijderen

**Stap 1:** Open een terminal of opdrachtregel op uw systeem.

**Stap 2:** Voer Docker `prune` uit om het systeem op te schonen:

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

Vervang `{resource}` door het type bronnen dat u wilt opschonen. Geldige waarden zijn `container`, `image`, `volume` en `network`.

### Hoe Docker-containers verwijderen

Standaard **geeft** Docker containers niet automatisch **vrij** nadat ze hun levenscyclus hebben voltooid. Het is belangrijk om regelmatig de gestopte containers te controleren en ze indien nodig op te ruimen om geblokkeerde bronnen vrij te maken voor het uitvoeren van containers. Er zijn twee methoden om dit te doen.

- `docker rm`: Het `docker rm` is bedoeld om één of meerdere Docker-containers **handmatig** te verwijderen. Als u precies weet welke containers u wilt verwijderen, is dit de juiste methode. U moet expliciet de ID’s of namen van de containers opgeven die u wilt verwijderen, zodat u alleen specifieke containers uit uw omgeving kunt verwijderen zonder andere containers te beïnvloeden.

Hier is een voorbeeld om de containers met de namen `container1` en `container2` te verwijderen:

```bash
docker rm container1 container2
```

- `docker container prune`: Daarentegen is `docker container prune` een commando dat bedoeld is om meerdere gestopte **containers tegelijk** te verwijderen. Deze methode is met name geschikt om snel en efficiënt ruimte vrij te maken door alle gestopte containers te verwijderen die momenteel geen actieve processen hebben.

```bash
docker container prune
```

Alle gestopte containers worden hier weergegeven en Docker vraagt om bevestiging voordat ze worden verwijderd. Dit is erg handig in omgevingen waar veel tijdelijke containers worden aangemaakt die later overbodig worden.

Voor het dagelijkse beheer en onderhoud van uw Docker-omgeving is het raadzaam om `docker container prune` **regelmatig** te gebruiken om gestopte containers automatisch op te ruimen. Deze aanpak bespaart tijd en zorgt ervoor dat geen onnodige bronnen de systeemprestaties beïnvloeden. Daarentegen is `docker rm` ideaal voor het gericht en gecontroleerd verwijderen van specifieke containers, of dit nu voor test-, ontwikkelings- of andere specifieke doeleinden is.

### Hoe Docker-images verwijderen

Docker-images zijn de bouwstenen van containers. Ze kunnen in de loop van de tijd veel verschillende versies en tags hebben. Wanneer u nieuwe images maakt of bijwerkt, blijft u vaak zitten met oude of ongebruikte images, ook wel **dangling** genoemd. Deze nemen schijfruimte in beslag op uw systeem en kunnen de prestaties beïnvloeden, vooral als er veel van dergelijke images zijn.

Met Docker `prune` kunt u afbeeldingen identificeren en verwijderen die niet meer worden gebruikt:

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

Mogelijke **opties** hier zijn bijvoorbeeld:

- `-a`, `--all`: Deze optie verwijdert niet alleen losse afbeeldingen, maar ook ongebruikte afbeeldingen. Ongebruikte afbeeldingen zijn afbeeldingen die geen tags meer hebben en daarom niet rechtstreeks door tags kunnen worden aangeroepen.

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

- `-f`, `--force`: Standaard vraagt Docker om bevestiging voordat afbeeldingen daadwerkelijk worden verwijderd. Met `-f` of `--force` kunt u deze bevestigingsstap overslaan en de opschoning onmiddellijk uitvoeren.

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

### Hoe alle Docker-images verwijderen

U kunt ook snel en volledig alle Docker-images op uw systeem opschonen die niet langer nodig zijn. Om Docker `prune` effectief te gebruiken, opent u eerst de terminal of opdrachtprompt en voert u de volgende opdracht in:

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

Controleer welke afbeeldingen worden verwijderd voordat u doorgaat met het opschonen. Met optie `-a` kunt u ongebruikte afbeeldingen verwijderen die u mogelijk nog nodig hebt.

### Hoe Docker-volumes verwijderen

Volumes zijn **persistent** en behouden gegevens, zelfs wanneer de bijbehorende container niet meer actief is. Na verloop van tijd kunnen deze volumes groeien en onnodig veel bronnen verbruiken.

```bash
docker volume prune
```

Dit commando zoekt naar alle volumes die geen actieve containers hebben. U ontvangt een lijst met volumes die worden voorgesteld voor verwijdering. Bevestiging is vereist voordat de opschoning wordt uitgevoerd.

Daarentegen is `docker volume rm` een commando dat specifiek individuele Docker-volumes verwijdert. Dit kan handig zijn als u precies weet welk volume u wilt verwijderen, ongeacht of het momenteel door een container wordt gebruikt. Om een specifiek Docker-volume te verwijderen, gebruikt u het commando `docker volume rm` gevolgd door de naam of ID van het volume:

```bash
docker volume rm volume_name
```

Zorg er nogmaals voor dat u de naam of ID van het te verwijderen volume weet, aangezien deze opdracht de gegevens permanent verwijdert en niet ongedaan kan worden gemaakt.

### Hoe Docker-netwerken verwijderen

In Docker zijn netwerken een fundamenteel onderdeel dat containers in staat stelt met elkaar te communiceren, of ze nu op dezelfde host staan of verspreid zijn over meerdere hosts. **Docker-netwerken** blijven bestaan, zelfs nadat containers zijn beëindigd of verwijderd. Na verloop van tijd kan dit leiden tot een opeenstapeling van ongebruikte netwerken die onnodig resources verbruiken. Met het `docker prune network` kunt u deze ongebruikte netwerken eenvoudig identificeren en verwijderen.

Het commando heeft de volgende indeling:

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

Docker genereert een lijst van alle netwerken die niet langer worden gebruikt door actieve containers of waarnaar niet langer wordt verwezen. Vervolgens wordt om bevestiging gevraagd voordat de netwerken daadwerkelijk worden verwijderd.

### Best practices voor Docker `prune`

- **Geautomatiseerde opschoning:** Gebruik geautomatiseerde scripts of tools om regelmatig Docker-images, containers en volumes op te schonen die niet langer nodig zijn. Dit houdt de omgeving schoon en optimaliseert de prestaties.
- **Beveiligingspatches en updates:** Controleer regelmatig of er beveiligingsupdates en patches beschikbaar zijn voor Docker-engines, hostbesturingssystemen en alle Docker-images. Door deze componenten up-to-date te houden, worden potentiële beveiligingsrisico’s tot een minimum beperkt.
- **Monitoring en logboekregistratie:** Gebruik monitoring- en logboekregistratietools om de prestaties van containers te monitoren, onverwachte gebeurtenissen te detecteren en proactief onderhoud te bevorderen.
- **Externe back-up:** Stel routines in voor externe back-ups van belangrijke gegevens uit Docker-containers, zoals het regelmatig maken van back-ups van database-inhoud of configuratiebestanden.
- **Handmatige controle vóór verwijdering:** Controleer zorgvuldig of u bepaalde bronnen niet meer nodig hebt voordat u ze verwijdert. Dit minimaliseert het risico op onbedoeld gegevensverlies of onderbrekingen van lopende processen.

Tip Als je net begint met Docker, raden we je aan onze uitgebreide [Docker-handleiding](https://www.ionos.com/nl-be/digitalguide/server/configuratie/docker-handleiding-installatie-en-eerste-stappen/) te lezen.


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/server/configuratie/docker-snoeien/](https://www.ionos.com/nl-be/digitalguide/server/configuratie/docker-snoeien/) for AI/LLM consumption.