Docker prune tar bort onödiga objekt som stoppade containrar, oanvända volymer och gamla nätverk eller bilder. Detta hjälper till att optimera hårddiskanvändningen och frigör lagringsutrymme.

Vad är Docker prune?

Docker prune eller system prune är användbart för att systematiskt rensa bort Docker-res urser som inte längre behövs, vilket hjälper dig att frigöra minne. Om Docker-containrar, bilder, nätverk och volymer förblir oanvända under en längre tid kan de ta upp en betydande mängd diskutrymme. 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 utvecklingsmiljöer, där nya containrar ofta skapas och testas, kan ett betydande antal föråldrade objekt ackumuleras. Docker prune tar effektivt bort inte bara oanvända containrar och bilder utan även nätverk och volymer som inte längre behövs. Detta effektiviserar hanteringen av Docker-resurser och minimerar risken för ett rörigt, överbelastat system.

Vad används Docker prune till?

Kommandot prune är lämpligt för olika situationer i det dagliga arbetet med Docker. Nedan har vi listat fyra typiska scenarier för dess användning.

Optimera arbetsprocesser: Docker-miljöer används ofta för utveckling, testning och produktion. Utan regelbunden rensning kan detta leda till en snabb ansamling av onödiga resurser. En sådan överbelastning ökar inte bara minnesanvändningen utan kan också påverka systemets prestanda negativt. Genom att ta bort oanvända resurser möjliggör Docker prune en mer effektiv användning av systemresurserna. Detta är särskilt viktigt i molnbaserade miljöer, där kostnaderna stiger i takt med efterfrågan på lagrings- och beräkningsresurser.

Öka säkerheten: Redundanta och föråldrade Docker-resurser kan utgöra säkerhetsrisker. Docker prune tar bort oanvända containrar, bilder, nätverk och volymer, vilket minskar risken för att föråldrade och potentiellt sårbara komponenter lämnas oskyddade. Att upprätthålla ett rent Docker-ekosystem minimerar attackytan och förbättrar den övergripande säkerheten i din IT-infrastruktur.

Öka prestandan: En överbelastad Docker-miljö kan hämma systemets prestanda genom att förbruka onödiga resurser som CPU och minne. Regelbunden rensning med Docker prune frigör diskutrymme och förbättrar effektiviteten i containerhantering och -körning. Detta resulterar i betydligt kortare laddningstider, snabbare applikationsdistributioner och förbättrad systemrespons överlag.

Förenklat underhåll: Att köra Docker prune regelbundet förenklar underhållet av din Docker-miljö avsevärt. Genom att ta bort oanvända resurser minskar komplexiteten i förvaltningsuppgifterna för utvecklare. Detta gör det enklare att hålla reda på aktiva och relevanta Docker-komponenter, vilket påskyndar felsökningen. Som ett resultat sparar teamen tid på administration och kan fokusera mer på att utveckla och förbättra sina applikationer istället för att hantera överflödiga resurser.

Vad är syntaxen för Docker prune?

Har du en Docker-miljö och vill rensa resurser för att frigöra diskutrymme och förenkla hanteringen? 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 identifierar Docker stoppade containrar, 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. Alternativt kan du använda alternativet -f för att hoppa över bekräftelsen och köra rensningen omedelbart:

docker system prune -f
bash

Tips: Det är bra att kontrollera vilka Docker-resurser som för närvarande finns på systemet innan du använder Docker prune. Kör följande kommandon för att få en lista över alla containrar, bilder, nätverk och volymer:

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

Docker prune alternativ

Följande tabell ger dig en översikt över de olika alternativen i docker system prune.

Alternativ Beskrivning
--all, -a Tar bort alla oanvända Docker-resurser.
--force, -f Utför rensningen utan bekräftelse från användaren.
--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ålinriktad rensning av specifika resurstyper. Detta ger dig flexibiliteten att kontrollera 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ördelaktigt i utvecklingsmiljöer där många tillfälliga resurser kan skapas och snabbt glömmas bort.

Den allmänna syntaxen är:

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

De olika filteralternativen inkluderar:

  • until: Filtrerar resurser baserat på deras skapandedatum. 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 containrar 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 huvudfilter som nämns ovan finns det även mer specifika filteralternativ beroende på resurstyp:

  • before och since för bilder: Filtrerar bilder baserat på deras skapandedatum, antingen före eller efter en viss tidpunkt
  • exited för containrar: Filtrerar containrar baserat på deras exitstatus (till exempel exited=0 för framgångsrikt avslutade containrar)

Hur man tar bort Docker-resurser

Steg 1: Öppna en terminal eller kommandorad 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-containrar

Som standard frigör Docker inte automatiskt containrar efter att de har slutfört sin livscykel. Det är viktigt att regelbundet kontrollera de stoppade containrarna och rensa dem efter behov för att frigöra blockerade resurser för att köra containrar. 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-containrar. Om du vet exakt vilka containrar du vill ta bort är detta den lämpliga metoden. Du måste uttryckligen ange ID:n eller namnen på de containrar du vill ta bort, så att du kan ta bort endast specifika containrar från din miljö utan att påverka andra.

Här är ett exempel på hur man tar bort behållarna 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 containrar samtidigt. Denna metod är särskilt lämplig för att snabbt och effektivt frigöra utrymme genom att ta bort alla stoppade containrar som för närvarande inte har några aktiva processer.
docker container prune
bash

Alla stoppade containrar listas här, och Docker ber dig bekräfta innan de tas bort. Detta är mycket praktiskt i miljöer där många tillfälliga containrar skapas och senare blir onödiga.

För den dagliga hanteringen och underhållet av din Docker-miljö rekommenderas det att du använder docker container prune regelbundet för att automatiskt rensa bort stoppade containrar. Denna metod sparar tid och säkerställer att inga onödiga resurser påverkar systemets prestanda. Däremot är docker rm idealiskt för att radera specifika containrar på ett målinriktat och kontrollerat sätt, oavsett om det är för testning, utveckling eller andra specifika behov.

Hur man tar bort Docker-bilder

Docker-bilder är byggstenarna i containrar. De kan ha många olika versioner och taggar över tid. När du skapar eller uppdaterar nya bilder blir du ofta kvar med gamla eller oanvända bilder, så kallade dangling. Dessa tar upp diskutrymme på ditt system och kan påverka prestandan, särskilt om det finns många sådana bilder.

Med Docker prune kan du identifiera och ta bort bilder som inte längre används:

docker image prune [Options]
bash

Möjliga alternativ här är till exempel:

  • -a, --all: Det här alternativet 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 bekräftelse innan bilderna faktiskt raderas. Med -f eller --force kan du hoppa över detta bekräftelsesteg och utföra rensningen omedelbart.
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 terminalen eller kommandotolken 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 fortsätter med rensningen. Alternativet -a kan ta bort oanvända bilder som du kanske fortfarande behöver.

Hur man tar bort Docker-volymer

Volymerna är beständiga och behåller data även när den tillhörande behållaren 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 borttagning, och bekräftelse krävs innan rensningen utförs.

Däremot är docker volume rm ett kommando som specifikt tar bort enskilda Docker-volymer. Detta kan vara användbart om du vet exakt vilken volym du vill ta bort, oavsett om den för närvarande 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 grundläggande komponent som gör det möjligt för containrar att kommunicera 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 containrar 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 identifiera 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 containrar eller som inte längre refereras till. Därefter begärs en bekräftelse innan nätverken faktiskt tas bort.

Bästa praxis för Docker prune

  • Automatisk rensning: Använd automatiska skript eller verktyg för att regelbundet rensa bort Docker-bilder, containrar och volymer som inte längre behövs. Detta håller miljön ren och optimerar prestandan.
  • Säkerhetsuppdateringar och patchar: Kontrollera regelbundet om det finns säkerhetsuppdateringar och patchar för Docker-motorer, värdoperativsystem och alla Docker-bilder. Att hålla dessa komponenter uppdaterade hjälper till att minimera potentiella säkerhetsrisker.
  • Övervakning och loggning: Använd övervaknings- och loggningsverktyg för att övervaka containerprestanda, upptäcka oväntade händelser och främja proaktivt underhåll.
  • Extern säkerhetskopiering: Upprätta rutiner för extern säkerhetskopiering av viktiga data från Docker-containrar, till exempel regelbunden säkerhetskopiering av databasinnehåll eller konfigurationsfiler.
  • Manuell kontroll före borttagning: Kontrollera noggrant om du inte längre behöver vissa resurser innan du tar bort dem. Detta minimerar risken för oavsiktlig dataförlust eller avbrott i pågående processer.
Tips

Om du precis har börjat använda Docker rekommenderar vi att du läser vår omfattande Docker-handledning.

Gå till huvudmeny