Con­tai­ne­re optager diskplads og res­sour­cer på dit vært­sy­stem. Ved at slette de con­tai­ne­re, du ikke længere har brug for, kan du frigøre værdifuld la­ger­plads og forbedre systemets ydeevne.

Hvornår bør man slette Docker-con­tai­ne­re?

Docker-con­tai­ne­re er isolerede, kørbare enheder, der in­de­hol­der ap­pli­ka­tio­ner og deres af­hæn­gig­he­der. I mange si­tu­a­tio­ner kan det være en god idé at fjerne Docker-con­tai­ne­re for at sikre, at dit Docker-miljø er så effektivt, sikkert og over­sku­e­ligt som muligt.

Først og fremmest bør du slette con­tai­ne­re, så snart de har udfyldt deres formål. Når en container har gen­nem­ført sin spe­ci­fik­ke opgave eller proces, giver det ingen mening at beholde den i dit miljø. På den måde undgår du, at inaktive con­tai­ne­re optager res­sour­cer og plads unødigt.

Det er også en god idé at fjerne con­tai­ne­re, der ikke er i aktiv brug, eller som ikke er blevet opdateret i lang tid. Dette er især vigtigt for at minimere sik­ker­heds­ri­si­ci, da ældre con­tai­ne­re kan indeholde forældede softwa­re­ver­sio­ner eller sik­ker­heds­ri­si­ci.

Hvis du er bekymret for sik­ker­he­den i en container eller har mistanke om, at den er blevet kom­pro­mit­te­ret, bør du straks fjerne den. Det samme gælder for con­tai­ne­re, der ikke kan startes på grund af kon­flik­ter eller andre problemer.

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

Det er en al­min­de­lig frem­gangs­må­de at slette en eller flere bestemte Docker-con­tai­ne­re, når man skal fjerne unød­ven­di­ge eller inaktive con­tai­ne­re fra Docker-værten.

Trin 1: Angiv container-id’er eller -navne

Først skal du finde ID’erne eller navnene på de con­tai­ne­re, du vil fjerne. Du kan bruge følgende kommando til at få vist en liste over alle kørende og stoppede con­tai­ne­re:

docker ps -a
bash

Trin 2: Fjern be­hol­de­ren

Du kan blot indtaste container-id’erne eller -navnene adskilt med mellemrum efter **kom­man­do­en docker rm**:

docker rm container_id_or_name1 container_id_or_name2
bash

Sådan fjerner du en Docker-container, når du lukker ned

Hvis du vil fjerne en container au­to­ma­tisk, når den er afsluttet, skal du angive flaget --rm, når du starter con­tai­ne­ren med kom­man­do­en docker run. Dette flag bevirker, at con­tai­ne­ren fjernes au­to­ma­tisk, så snart den er færdig.

docker run --rm image_name
bash

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

Det er også muligt at fjerne alle af­slut­te­de con­tai­ne­re på én gang ved at filtrere con­tai­ner­ne efter deres status og fjerne dem ved hjælp af kom­man­do­en rm.

Trin 1: Vis en liste over af­slut­te­de con­tai­ne­re

Med indstil­ling -f status=exited kan du filtrere con­tai­n­er­li­sten, så den kun viser de con­tai­ne­re, der er lukket ned.

docker ps -a -f status=exited
bash

Trin 2: Fjern af­slut­te­de con­tai­ne­re

Vi bruger re­sul­ta­tet fra det fo­re­gå­en­de trin til at hente ID’erne på de af­slut­te­de con­tai­ne­re og sender dem direkte videre til kom­man­do­en docker rm.

docker rm $(docker ps -a -f status=exited -q)
bash

Sådan fjerner du alle Docker-con­tai­ne­re med mere end ét filter

Du kan fjerne Docker-con­tai­ne­re med mere end ét filter, hvis du bruger kom­man­do­en docker ps sammen med fil­te­rindstil­lin­ger­ne og derefter sender re­sul­ta­tet videre til kom­man­do­en docker rm.

Trin 1: Vis con­tai­ne­re med filtre

Først indtaster vi kom­man­do­en docker ps sammen med fil­te­rindstil­lin­ger­ne for at få en liste over con­tai­ne­re, der opfylder de ønskede kriterier. »created« er en anden status, man kan vælge, ud over »exited«. Con­tai­ne­re med status »created« er con­tai­ne­re, der er oprettet, men endnu ikke kørt.

docker ps -a -f status=exited -f status=created
bash

Trin 2: Fjern Docker-con­tai­ne­ren

Ligesom i eksemplet ovenfor sender vi uddataen videre til docker rm.

docker rm $(docker ps -a -f status=exited -f status=created -q)
bash

Sådan fjerner du Docker-con­tai­ne­re efter et bestemt mønster

At finde alle Docker-con­tai­ne­re, der matcher et bestemt mønster, og derefter slette dem med kom­man­do­er­ne awk, xargs og docker rm er en effektiv måde at fjerne udvalgte con­tai­ne­re på.

Trin 1: Lav en liste over alle con­tai­ne­re med et mønster

Hvis du bruger kom­man­do­en docker ps -a sammen med grep, får du alle con­tai­ne­re, hvis navne eller tags matcher et bestemt mønster. Du kan for eksempel få vist alle con­tai­ne­re, hvis navne begynder med »test-«:

docker ps -a | grep "test-"
bash

Trin 2: Fjern Docker-con­tai­ne­re

Med kom­man­do­en awk kan du vælge bestemte kolonner fra ud­gangs­re­sul­ta­tet. Her vil vi udtrække den første kolonne, der in­de­hol­der container-id’erne. Vi kan bruge xargs til at vi­de­re­gi­ve id’erne til kom­man­do­en docker rmi og fjerne Docker-con­tai­ner­ne.

docker ps -a | grep "test-" | awk '{print $1}' | xargs docker rmi
bash

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

Du kan stoppe og fjerne alle aktive og inaktive con­tai­ne­re på dit system på én gang. Dette kan være nyttigt, hvis du ønsker at foretage en grundig oprydning i dit Docker-miljø.

Trin 1: Lav en liste over alle con­tai­ne­re

Indtast følgende kommando for at se listen over con­tai­ne­re:

docker ps -a
bash

Trin 2: Stop con­tai­ner­ne

Når du er klar, skal du vi­de­re­sen­de output til docker stop. Dette vil stoppe alle con­tai­ne­re.

docker stop $(docker ps -a -q)
bash

Trin 3: Fjern Docker-con­tai­ne­re

Når alle con­tai­ne­re er blevet stoppet, kan du fjerne dem ved hjælp af kom­man­do­en docker rm:

docker rm $(docker ps -a -q)
bash

I mod­sæt­ning til al­min­de­li­ge Docker-con­tai­ne­re er Docker-con­tai­ner­vo­lu­mer me­ka­nis­mer, der muliggør da­ta­lag­ring og -deling mellem con­tai­ne­re og vært­sy­ste­met.

I vores digitale guide kan du finde andre Docker-vej­led­nin­ger, herunder hvordan man fjerner et Docker-volume og hvordan man sletter et Docker-billede.

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