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:

docker system prune
bash

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:

docker system prune -f
bash

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:

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

Docker prune opties

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

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

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:

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

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).
docker <command> prune --filter "until=<duration>"
bash

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

docker container prune --filter "until=24h"
bash
  • label: Filtert bronnen op basis van hun Docker-labels
docker <command> prune --filter "label=<label>"
bash

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

docker volume prune --filter "label=mylabel"
bash
  • dangling: Filtert bronnen die niet langer door een container worden gebruikt
docker <command> prune --filter "dangling=true"
bash

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

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

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:

docker {resource} prune
bash

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:

docker rm container1 container2
bash
  • 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.
docker container prune
bash

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:

docker image prune [Options]
bash

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.
docker image prune -a
bash
  • -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.
docker image prune -f
bash

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:

docker image prune -a --force
bash

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.

docker volume prune
bash

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:

docker volume rm volume_name
bash

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:

docker network prune [OPTIONS]
bash

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 te lezen.

Ga naar hoofdmenu