Docker prune tar bort onödiga objekt som stoppade con­tain­rar, oanvända volymer och gamla nätverk eller bilder. Detta hjälper till att optimera hård­dis­kan­vänd­ning­en och frigör lag­rings­ut­rym­me.

Vad är Docker prune?

Docker prune eller system prune är an­vänd­bart för att sys­te­ma­tiskt rensa bort Docker-res urser som inte längre behövs, vilket hjälper dig att frigöra minne. Om Docker-con­tain­rar, bilder, nätverk och volymer förblir oanvända under en längre tid kan de ta upp en betydande mängd dis­kut­rym­me. Med prune kan du snabbt eliminera dessa oanvända resurser, vilket håller ditt system rent och presterar på bästa sätt.

Särskilt i ut­veck­lings­mil­jö­er, där nya con­tain­rar ofta skapas och testas, kan ett betydande antal föråld­ra­de objekt ac­ku­mu­le­ras. Docker prune tar effektivt bort inte bara oanvända con­tain­rar och bilder utan även nätverk och volymer som inte längre behövs. Detta ef­fek­ti­vi­se­rar han­te­ring­en av Docker-resurser och minimerar risken för ett rörigt, över­be­las­tat system.

Vad används Docker prune till?

Kommandot prune är lämpligt för olika si­tu­a­tio­ner i det dagliga arbetet med Docker. Nedan har vi listat fyra typiska scenarier för dess an­vänd­ning.

Optimera ar­bets­pro­ces­ser: Docker-miljöer används ofta för ut­veck­ling, testning och pro­duk­tion. Utan re­gel­bun­den rensning kan detta leda till en snabb ansamling av onödiga resurser. En sådan över­be­last­ning ökar inte bara min­ne­san­vänd­ning­en utan kan också påverka systemets prestanda negativt. Genom att ta bort oanvända resurser möjliggör Docker prune en mer effektiv an­vänd­ning av system­re­sur­ser­na. Detta är särskilt viktigt i moln­ba­se­ra­de miljöer, där kost­na­der­na stiger i takt med ef­ter­frå­gan på lagrings- och be­räk­nings­re­sur­ser.

Öka sä­ker­he­ten: Re­dun­dan­ta och föråld­ra­de Docker-resurser kan utgöra sä­ker­hets­ris­ker. Docker prune tar bort oanvända con­tain­rar, bilder, nätverk och volymer, vilket minskar risken för att föråld­ra­de och po­ten­ti­ellt sårbara kom­po­nen­ter lämnas oskyddade. Att upp­rätt­hål­la ett rent Docker-ekosystem minimerar at­tacky­tan och för­bätt­rar den över­gri­pan­de sä­ker­he­ten i din IT-in­fra­struk­tur.

Öka pre­stan­dan: En över­be­las­tad Docker-miljö kan hämma systemets prestanda genom att förbruka onödiga resurser som CPU och minne. Re­gel­bun­den rensning med Docker prune frigör dis­kut­rym­me och för­bätt­rar ef­fek­ti­vi­te­ten i con­tai­ner­han­te­ring och -körning. Detta re­sul­te­rar i betydligt kortare ladd­nings­ti­der, snabbare ap­pli­ka­tions­dis­tri­bu­tio­ner och för­bätt­rad system­re­spons överlag.

Förenklat underhåll: Att köra Docker prune re­gel­bun­det förenklar un­der­hål­let av din Docker-miljö avsevärt. Genom att ta bort oanvända resurser minskar kom­plex­i­te­ten i för­valt­nings­upp­gif­ter­na för ut­veck­la­re. Detta gör det enklare att hålla reda på aktiva och relevanta Docker-kom­po­nen­ter, vilket påskyndar fel­sök­ning­en. Som ett resultat sparar teamen tid på ad­mi­nist­ra­tion och kan fokusera mer på att utveckla och förbättra sina ap­pli­ka­tio­ner istället för att hantera över­flö­di­ga resurser.

Vad är syntaxen för Docker prune?

Har du en Docker-miljö och vill rensa resurser för att frigöra dis­kut­rym­me och förenkla han­te­ring­en? I så fall kan du helt enkelt köra följande kommando för att få åtkomst till prune tjänster:

docker system prune
bash

Som standard iden­ti­fi­e­rar Docker stoppade con­tain­rar, oanvända bilder, nätverk och volymer som kan rensas bort och ber dig bekräfta innan de tas bort. Ange bara y och tryck på Enter-tangenten för att fortsätta. Al­ter­na­tivt kan du använda al­ter­na­ti­vet -f för att hoppa över be­kräf­tel­sen och köra rens­ning­en ome­del­bart:

docker system prune -f
bash

Tips: Det är bra att kon­trol­le­ra vilka Docker-resurser som för när­va­ran­de finns på systemet innan du använder Docker prune. Kör följande kommandon för att få en lista över alla con­tain­rar, bilder, nätverk och volymer:

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

Docker prune al­ter­na­tiv

Följande tabell ger dig en översikt över de olika al­ter­na­ti­ven i docker system prune.

Al­ter­na­tiv Be­skriv­ning
--all, -a Tar bort alla oanvända Docker-resurser.
--force, -f Utför rens­ning­en utan be­kräf­tel­se från an­vän­da­ren.
--volumes Tar bort oanvända volymer.
--filter, -f Gör det möjligt att filtrera de resurser som ska tas bort enligt kriterier.
--help Visar hjälp om hur kommandot används.

Hur man använder kommandot Docker prune

Docker erbjuder olika kommandon som möjliggör mål­in­rik­tad rensning av specifika re­surs­ty­per. Detta ger dig flex­i­bi­li­te­ten att kon­trol­le­ra exakt vilka resurser som ska tas bort.

Docker prune --filter

Du kan använda Filter för att styra valet av resurser som ska tas bort, till exempel behållare, bilder, nätverk och volymer. Detta är för­del­ak­tigt i ut­veck­lings­mil­jö­er där många till­fäl­li­ga resurser kan skapas och snabbt glömmas bort.

Den allmänna syntaxen är:

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

De olika fil­te­ral­ter­na­ti­ven in­klu­de­rar:

  • until: Filtrerar resurser baserat på deras ska­pan­de­da­tum. Här kan <duration> vara ett numeriskt värde med en enhet som h (timmar), m (minuter) eller s (sekunder).
docker <command> prune --filter "until=<duration>"
bash

Exempel: Ta bort alla stoppade con­tain­rar som är äldre än 24 timmar.

docker container prune --filter "until=24h"
bash
  • label: Filtrerar resurser baserat på deras Docker-etiketter
docker <command> prune --filter "label=<label>"
bash

Exempel: Rensa bort alla oanvända volymer som har etiketten mylabel.

docker volume prune --filter "label=mylabel"
bash
  • dangling: Filtrerar resurser som inte längre används av en behållare
docker <command> prune --filter "dangling=true"
bash

Exempel: Ta bort alla bilder som inte längre används (hängande)*

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

Utöver de hu­vud­fil­ter som nämns ovan finns det även mer specifika fil­te­ral­ter­na­tiv beroende på resurstyp:

  • before och since för bilder: Filtrerar bilder baserat på deras ska­pan­de­da­tum, antingen före eller efter en viss tidpunkt
  • exited för con­tain­rar: Filtrerar con­tain­rar baserat på deras ex­it­sta­tus (till exempel exited=0 för fram­gångs­rikt avslutade con­tain­rar)

Hur man tar bort Docker-resurser

Steg 1: Öppna en terminal eller kom­man­do­rad på ditt system.

Steg 2: Kör Docker prune för att rensa systemet:

docker {resource} prune
bash

Ersätt {resource} med den typ av resurser du vill rensa. Giltiga värden är container, image, volume och network.

Hur man tar bort Docker-con­tain­rar

Som standard frigör Docker inte au­to­ma­tiskt con­tain­rar efter att de har slutfört sin livscykel. Det är viktigt att re­gel­bun­det kon­trol­le­ra de stoppade con­tain­rar­na och rensa dem efter behov för att frigöra bloc­ke­ra­de resurser för att köra con­tain­rar. Det finns två metoder för att göra detta.

  • docker rm: Kommandot docker rm är avsett för att manuellt ta bort enstaka eller flera Docker-con­tain­rar. Om du vet exakt vilka con­tain­rar du vill ta bort är detta den lämpliga metoden. Du måste ut­tryck­li­gen ange ID:n eller namnen på de con­tain­rar du vill ta bort, så att du kan ta bort endast specifika con­tain­rar från din miljö utan att påverka andra.

Här är ett exempel på hur man tar bort be­hål­lar­na med namnen container1 och container2:

docker rm container1 container2
bash
  • docker container prune: Däremot är docker container prune ett kommando som syftar till att ta bort flera stoppade con­tain­rar samtidigt. Denna metod är särskilt lämplig för att snabbt och effektivt frigöra utrymme genom att ta bort alla stoppade con­tain­rar som för när­va­ran­de inte har några aktiva processer.
docker container prune
bash

Alla stoppade con­tain­rar listas här, och Docker ber dig bekräfta innan de tas bort. Detta är mycket praktiskt i miljöer där många till­fäl­li­ga con­tain­rar skapas och senare blir onödiga.

För den dagliga han­te­ring­en och un­der­hål­let av din Docker-miljö re­kom­men­de­ras det att du använder docker container prune re­gel­bun­det för att au­to­ma­tiskt rensa bort stoppade con­tain­rar. Denna metod sparar tid och sä­ker­stäl­ler att inga onödiga resurser påverkar systemets prestanda. Däremot är docker rm idealiskt för att radera specifika con­tain­rar på ett mål­in­rik­tat och kon­trol­le­rat sätt, oavsett om det är för testning, ut­veck­ling eller andra specifika behov.

Hur man tar bort Docker-bilder

Docker-bilder är bygg­ste­nar­na i con­tain­rar. De kan ha många olika versioner och taggar över tid. När du skapar eller upp­da­te­rar nya bilder blir du ofta kvar med gamla eller oanvända bilder, så kallade dangling. Dessa tar upp dis­kut­rym­me på ditt system och kan påverka pre­stan­dan, särskilt om det finns många sådana bilder.

Med Docker prune kan du iden­ti­fi­e­ra och ta bort bilder som inte längre används:

docker image prune [Options]
bash

Möjliga al­ter­na­tiv här är till exempel:

  • -a, --all: Det här al­ter­na­ti­vet tar inte bara bort hängande bilder, utan också oanvända bilder. Oanvända bilder är sådana som inte längre har taggar och därför inte kan refereras direkt av taggar.
docker image prune -a
bash
  • -f, --force: Som standard begär Docker be­kräf­tel­se innan bilderna faktiskt raderas. Med -f eller --force kan du hoppa över detta be­kräf­tel­se­steg och utföra rens­ning­en ome­del­bart.
docker image prune -f
bash

Hur man tar bort alla Docker-bilder

Du kan också snabbt och grundligt rensa bort alla Docker-bilder på ditt system som inte längre behövs. För att använda Docker prune effektivt öppnar du först ter­mi­na­len eller kom­man­do­tol­ken och anger följande kommando:

docker image prune -a --force
bash

Se till att du granskar vilka bilder som kommer att tas bort innan du fort­sät­ter med rens­ning­en. Al­ter­na­ti­vet -a kan ta bort oanvända bilder som du kanske fort­fa­ran­de behöver.

Hur man tar bort Docker-volymer

Volymerna är be­stän­di­ga och behåller data även när den till­hö­ran­de be­hål­la­ren inte längre är igång. Med tiden kan dessa volymer växa och förbruka resurser i onödan.

docker volume prune
bash

Detta kommando söker efter alla volymer som inte har några aktiva behållare. Du får en lista över volymer som föreslås för bort­tag­ning, och be­kräf­tel­se krävs innan rens­ning­en utförs.

Däremot är docker volume rm ett kommando som specifikt tar bort enskilda Docker-volymer. Detta kan vara an­vänd­bart om du vet exakt vilken volym du vill ta bort, oavsett om den för när­va­ran­de används av en container. För att ta bort en specifik Docker-volym använder du kommandot docker volume rm följt av namnet eller ID:t för volymen:

docker volume rm volume_name
bash

Se återigen till att du känner till namnet eller ID-numret på den volym som ska raderas, eftersom detta kommando permanent raderar data och inte kan ångras.

Hur man tar bort Docker-nätverk

I Docker är nätverk en grund­läg­gan­de komponent som gör det möjligt för con­tain­rar att kom­mu­ni­ce­ra med varandra, oavsett om de finns på samma värd eller är spridda över flera värdar. Docker-nätverk kvarstår även efter att con­tain­rar har avslutats eller tagits bort. Med tiden kan detta leda till en ansamling av oanvända nätverk som förbrukar resurser i onödan. Kommandot docker prune network är ett enkelt sätt att iden­ti­fi­e­ra och ta bort dessa oanvända nätverk.

Kommandot har följande format:

docker network prune [OPTIONS]
bash

Docker genererar en lista över alla nätverk som inte längre används av aktiva con­tain­rar eller som inte längre refereras till. Därefter begärs en be­kräf­tel­se innan nätverken faktiskt tas bort.

Bästa praxis för Docker prune

  • Au­to­ma­tisk rensning: Använd au­to­ma­tis­ka skript eller verktyg för att re­gel­bun­det rensa bort Docker-bilder, con­tain­rar och volymer som inte längre behövs. Detta håller miljön ren och optimerar pre­stan­dan.
  • Sä­ker­hets­upp­da­te­ring­ar och patchar: Kon­trol­le­ra re­gel­bun­det om det finns sä­ker­hets­upp­da­te­ring­ar och patchar för Docker-motorer, vär­do­pe­ra­tiv­sy­stem och alla Docker-bilder. Att hålla dessa kom­po­nen­ter upp­da­te­ra­de hjälper till att minimera po­ten­ti­el­la sä­ker­hets­ris­ker.
  • Över­vak­ning och loggning: Använd över­vak­nings- och logg­nings­verk­tyg för att övervaka con­tai­ner­pre­stan­da, upptäcka oväntade händelser och främja proaktivt underhåll.
  • Extern sä­ker­hetsko­pi­e­ring: Upprätta rutiner för extern sä­ker­hetsko­pi­e­ring av viktiga data från Docker-con­tain­rar, till exempel re­gel­bun­den sä­ker­hetsko­pi­e­ring av da­ta­ba­s­in­ne­håll eller kon­fi­gu­ra­tions­fi­ler.
  • Manuell kontroll före bort­tag­ning: Kon­trol­le­ra noggrant om du inte längre behöver vissa resurser innan du tar bort dem. Detta minimerar risken för oav­sikt­lig da­ta­för­lust eller avbrott i pågående processer.
Tips

Om du precis har börjat använda Docker re­kom­men­de­rar vi att du läser vår om­fat­tan­de Docker-hand­led­ning.

Gå till huvudmeny