Docker prune fjerner unød­ven­di­ge elementer såsom stoppede con­tai­ne­re, ubrugte volumener og gamle netværk eller billeder. Dette bidrager til at optimere hard­disk­for­bru­get og frigør la­ger­plads.

Hvad er Docker prune?

Docker prune eller system prune er nyttigt til sy­ste­ma­tisk at rydde op i Docker-res­sour­cer, der ikke længere er nød­ven­di­ge, hvilket hjælper dig med at frigøre hukom­mel­se. Hvis Docker-con­tai­ne­re, -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 res­sour­cer, så dit system forbliver rent og fungerer optimalt.

Især i ud­vik­lings­mil­jø­er, hvor der ofte oprettes og testes nye con­tai­ne­re, kan der samle sig et be­ty­de­ligt antal forældede objekter. Docker prune fjerner effektivt ikke blot ubrugte con­tai­ne­re og billeder, men også netværk og volumener, der ikke længere er nød­ven­di­ge. Dette strøm­li­ner ad­mi­ni­stra­tio­nen af Docker-res­sour­cer og minimerer risikoen for et rodet og over­be­la­stet system.

Hvad bruges Docker prune til?

Kom­man­do­en prune er velegnet til for­skel­li­ge si­tu­a­tio­ner i det daglige arbejde med Docker. Nedenfor har vi opstillet fire typiske an­ven­del­ses­sce­na­ri­er.

Op­ti­me­ring af ar­bejds­pro­ces­ser: Docker-miljøer anvendes ofte til udvikling, test og pro­duk­tion. Uden re­gel­mæs­sig oprydning kan dette føre til en hurtig ophobning af unød­ven­di­ge res­sour­cer. En sådan over­be­last­ning øger ikke blot hukom­mel­ses­for­bru­get, men kan også påvirke systemets ydeevne negativt. Ved at fjerne ubrugte res­sour­cer muliggør Docker prune en mere effektiv ud­nyt­tel­se af sy­stemres­sour­cer­ne. Dette er især vigtigt i cloud-baserede miljøer, hvor om­kost­nin­ger­ne stiger i takt med ef­ter­spørgs­len efter lager- og com­pu­terre­s­sour­cer.

Øget sikkerhed: Over­flø­di­ge og forældede Docker-res­sour­cer kan udgøre en sik­ker­heds­ri­si­ko. Docker prune fjerner ubrugte con­tai­ne­re, billeder, netværk og volumener, hvilket mindsker risikoen for, at forældede og po­ten­ti­elt sårbare kom­po­nen­ter står ube­skyt­tet tilbage. Ved at holde Docker-miljøet rent minimeres an­grebs­fla­den, og den samlede sikkerhed i din IT-in­fra­struk­tur styrkes.

Forbedret ydeevne: Et over­be­la­stet Docker-miljø kan hæmme systemets ydeevne ved at forbruge unød­ven­di­ge res­sour­cer som CPU og hukom­mel­se. Re­gel­mæs­sig oprydning med Docker prune frigør diskplads og øger ef­fek­ti­vi­te­ten i con­tai­ner­hånd­te­ring og -kørsel. Dette re­sul­te­rer i markant kortere ind­læs­ning­sti­der, hurtigere im­ple­men­te­ring af ap­pli­ka­tio­ner og forbedret samlet sy­stem­re­spons.

Forenklet ved­li­ge­hol­del­se: Re­gel­mæs­sig kørsel af Docker prune forenkler ved­li­ge­hol­del­sen af dit Docker-miljø be­ty­de­ligt. Ved at fjerne ubrugte res­sour­cer mindskes kom­plek­si­te­ten i ad­mi­ni­stra­tions­op­ga­ver­ne for ud­vik­ler­ne. Det gør det nemmere at holde styr på aktive og relevante Docker-kom­po­nen­ter, hvilket frem­skyn­der fejl­find­ing. Dermed sparer teams tid på ad­mi­ni­stra­tion og kan i stedet fokusere mere på at udvikle og forbedre deres ap­pli­ka­tio­ner frem for at be­skæf­ti­ge sig med over­flø­di­ge res­sour­cer.

Hvordan ser syntaksen for Docker prune ud?

Har du et Docker-miljø og ønsker du at rydde op i res­sour­cer­ne for at frigøre diskplads og forenkle ad­mi­ni­stra­tio­nen? I så fald skal du blot køre følgende kommando for at få adgang til prune tjenester:

docker system prune
bash

Som standard iden­ti­fi­ce­rer Docker stoppede con­tai­ne­re, ubrugte billeder, netværk og volumener, der kan ryddes op, og beder dig om be­kræf­tel­se, før de fjernes. Du skal blot skrive y og trykke på Enter-tasten for at fortsætte. Du kan også bruge indstil­lin­gen -f til at springe be­kræf­tel­sen over og køre op­ryd­nin­gen med det samme:

docker system prune -f
bash

Tip: Det kan være en god idé at tjekke, hvilke Docker-res­sour­cer der i øje­blik­ket findes på systemet, inden du tager Docker prune i brug. Udfør følgende kom­man­do­er for at få en liste over alle con­tai­ne­re, billeder, netværk og volumener:

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

Docker prune -indstil­lin­ger

Ne­den­stå­en­de tabel giver et overblik over de for­skel­li­ge mu­lig­he­der i docker system prune.

Valg­mu­lig­hed Be­skri­vel­se
--all, -a Fjerner alle ubrugte Docker-res­sour­cer.
--force, -f Udfører op­ryd­nin­gen uden bru­ger­be­kræf­tel­se.
--volumes Fjerner ubrugte volumener.
--filter, -f Giver mulighed for at filtrere de res­sour­cer, der skal fjernes, efter bestemte kriterier.
--help Viser hjælp til, hvordan kom­man­do­en bruges.

Sådan bruger du kom­man­do­en Docker prune

Docker tilbyder en række kom­man­do­er, der gør det muligt at rydde op i bestemte typer res­sour­cer. Det giver dig flek­si­bi­li­tet til præcist at bestemme, hvilke res­sour­cer der skal fjernes.

Docker prune --filter

Du kan bruge filteret til at styre ud­væl­gel­sen af de res­sour­cer, der skal fjernes, f.eks. con­tai­ne­re, billeder, netværk og di­sken­he­der. Dette er en fordel i ud­vik­lings­mil­jø­er, hvor der hurtigt kan oprettes mange mid­ler­ti­di­ge res­sour­cer, som man glemmer.

Den generelle syntaks er:

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

De for­skel­li­ge fil­ter­mu­lig­he­der omfatter:

  • until: Filtrerer res­sour­cer ud fra deres op­ret­tel­ses­da­to. Her kan <duration> være et tal med en enhed, f.eks. h (timer), m (minutter) eller s (sekunder).
docker <command> prune --filter "until=<duration>"
bash

Eksempel: Fjern alle stoppede con­tai­ne­re, der er ældre end 24 timer

docker container prune --filter "until=24h"
bash
  • label: Filtrerer res­sour­cer ud fra deres Docker-mærker
docker <command> prune --filter "label=<label>"
bash

Eksempel: Ryd alle ubrugte volumener med mærket mylabel

docker volume prune --filter "label=mylabel"
bash
  • dangling: Filtrerer res­sour­cer, der ikke længere bruges af en container
docker <command> prune --filter "dangling=true"
bash

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

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

Ud over de ovenfor nævnte ho­ved­fil­tre findes der også mere spe­ci­fik­ke fil­tre­rings­mu­lig­he­der afhængigt af res­sour­ce­ty­pen:

  • before og since for billeder: Filtrerer billeder ud fra deres op­ret­tel­ses­da­to, enten før eller siden et bestemt tidspunkt
  • exited for con­tai­ne­re: Filtrerer con­tai­ne­re baseret på deres af­slut­nings­sta­tus (for eksempel exited=0 for con­tai­ne­re, der er afsluttet med succes)

Sådan fjerner du Docker-res­sour­cer

Trin 1: Åbn en terminal eller kom­man­do­linje på din computer.

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

docker {resource} prune
bash

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

Sådan fjerner du Docker-con­tai­ne­re

Som standard frigiver Docker ikke au­to­ma­tisk con­tai­ne­re, når de har afsluttet deres livs­cy­klus. Det er vigtigt re­gel­mæs­sigt at kon­trol­le­re de stoppede con­tai­ne­re og rydde op i dem efter behov for at frigøre blokerede res­sour­cer til kørende con­tai­ne­re. Der findes to metoder til at gøre dette.

  • docker rm: Kom­man­do­en docker rm er beregnet til manuelt at fjerne en eller flere Docker-con­tai­ne­re. Hvis du ved præcis, hvilke con­tai­ne­re du vil slette, er dette den rette metode. Du skal ud­tryk­ke­ligt angive ID’erne eller navnene på de con­tai­ne­re, du ønsker at fjerne, hvilket giver dig mulighed for kun at slette bestemte con­tai­ne­re fra dit miljø uden at påvirke andre.

Her er et eksempel på, hvordan man sletter con­tai­ner­ne med navnene container1 og container2:

docker rm container1 container2
bash
  • docker container prune: I mod­sæt­ning hertil er docker container prune en kommando, der har til formål at fjerne flere stoppede con­tai­ne­re på én gang. Denne metode er særligt velegnet til hurtigt og effektivt at frigøre plads ved at slette alle stoppede con­tai­ne­re, der i øje­blik­ket ikke har nogen kørende processer.
docker container prune
bash

Alle stoppede con­tai­ne­re 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 mid­ler­ti­di­ge con­tai­ne­re, som senere bliver over­flø­di­ge.

Til den daglige ad­mi­ni­stra­tion og ved­li­ge­hol­del­se af dit Docker-miljø anbefales det at bruge docker container prune re­gel­mæs­sigt til au­to­ma­tisk at rydde op i stoppede con­tai­ne­re. Denne frem­gangs­må­de sparer tid og sikrer, at unød­ven­di­ge res­sour­cer ikke påvirker systemets ydeevne. Derimod er docker rm ideel til at slette bestemte con­tai­ne­re på en målrettet og kon­trol­le­ret måde, hvad enten det er til test, udvikling eller andre spe­ci­fik­ke behov.

Sådan fjerner du Docker-billeder

Docker-billeder er byg­ge­ste­ne­ne i con­tai­ne­re. De kan få mange for­skel­li­ge 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:

docker image prune [Options]
bash

Mulige valg­mu­lig­he­der her er for eksempel:

  • -a, --all: Denne indstil­ling fjerner ikke kun billeder uden til­knyt­te­de 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.
docker image prune -a
bash
  • -f, --force: Som standard beder Docker om be­kræf­tel­se, før bil­le­der­ne rent faktisk slettes. Med -f eller --force kan du springe dette be­kræf­tel­se­s­trin over og udføre op­ryd­nin­gen med det samme.
docker image prune -f
bash

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ød­ven­di­ge. For at bruge Docker prune effektivt skal du først åbne ter­mi­na­len eller kom­mandopromp­ten og indtaste følgende kommando:

docker image prune -a --force
bash

Sørg for at tjekke, hvilke billeder der vil blive slettet, inden du går i gang med op­ryd­nin­gen. Indstil­lin­gen -a kan slette ubrugte billeder, som du måske stadig har brug for.

Sådan fjerner du Docker-volumener

Volumener er per­ma­nen­te og bevarer data, selv når den til­knyt­te­de container ikke længere kører. Over tid kan disse volumener vokse og forbruge unød­ven­di­ge res­sour­cer.

docker volume prune
bash

Denne kommando søger efter alle volumener, der ikke har nogen aktive con­tai­ne­re. Du får vist en liste over volumener, der foreslås fjernet, og du skal bekræfte, før op­ryd­nin­gen 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 øje­blik­ket bruges af en container. For at fjerne et bestemt Docker-volumen skal du bruge kom­man­do­en docker volume rm ef­ter­fulgt af vo­lu­me­nets navn eller ID:

docker volume rm volume_name
bash

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 grund­læg­gen­de komponent, der gør det muligt for con­tai­ne­re at kom­mu­ni­ke­re 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 con­tai­ne­re er blevet lukket ned eller fjernet. Over tid kan dette føre til en ophobning af ubrugte netværk, der unødigt bruger res­sour­cer. Kom­man­do­en docker prune network er en nem måde at iden­ti­fi­ce­re og fjerne disse ubrugte netværk på.

Kom­man­do­en har følgende format:

docker network prune [OPTIONS]
bash

Docker genererer en liste over alle netværk, der ikke længere bruges af aktive con­tai­ne­re eller ikke længere henvises til. Der anmodes derefter om be­kræf­tel­se, før net­vær­ke­ne rent faktisk fjernes.

Gode råd til Docker prune

  • Au­to­ma­tisk oprydning: Brug au­to­ma­ti­se­re­de scripts eller værktøjer til re­gel­mæs­sigt at rydde op i Docker-billeder, con­tai­ne­re og volumener, der ikke længere er nød­ven­di­ge. Dette holder miljøet rent og optimerer ydeevnen.
  • Sik­ker­heds­ret­tel­ser og op­da­te­rin­ger: Tjek re­gel­mæs­sigt for sik­ker­heds­op­da­te­rin­ger og rettelser til Docker-motorer, værts­o­pe­ra­tiv­sy­ste­mer og alle Docker-billeder. At holde disse kom­po­nen­ter op­da­te­re­de hjælper med at minimere po­ten­ti­el­le sik­ker­heds­ri­si­ci.
  • Over­våg­ning og logning: Brug over­våg­nings- og log­nings­værk­tø­jer til at overvåge con­tai­ne­rens ydeevne, opdage uventede hændelser og fremme proaktiv ved­li­ge­hol­del­se.
  • Ekstern backup: Etabler rutiner for eksterne backups af vigtige data fra Docker-con­tai­ne­re, f.eks. re­gel­mæs­sig backup af da­ta­ba­se­ind­hold eller kon­fi­gu­ra­tions­fi­ler.
  • Manuel kontrol før fjernelse: Kon­trol­ler om­hyg­ge­ligt, om du ikke længere har brug for bestemte res­sour­cer, før du fjerner dem. Dette minimerer risikoen for util­sig­tet datatab eller af­bry­del­ser i kørende processer.
Tip

Hvis du lige er begyndt at bruge Docker, anbefaler vi, at du læser vores om­fat­ten­de Docker-vej­led­ning.

Gå til ho­ved­me­nu­en