Hoe Docker-containers verwijderen en resources vrijmaken
Containers nemen schijfruimte en bronnen op uw hostsysteem in beslag. Door containers die u niet langer nodig hebt te verwijderen, kunt u waardevolle opslagruimte vrijmaken en de prestaties van uw systeem verbeteren.
Wanneer moet je Docker-containers verwijderen?
Docker-containers zijn geïsoleerde, uitvoerbare eenheden die applicaties en hun afhankelijkheden bevatten. In verschillende situaties is het zinvol om Docker-containers te verwijderen om ervoor te zorgen dat uw Docker-omgeving zo efficiënt, veilig en beheersbaar mogelijk is.
Allereerst moet u containers verwijderen zodra ze hun doel hebben gediend. Als een container zijn specifieke taak of proces met succes heeft voltooid, heeft het geen zin om deze in uw omgeving te houden. Zo voorkomt u dat inactieve containers onnodig resources en ruimte in beslag nemen.
Het is ook een goed idee om containers te verwijderen die niet actief worden gebruikt of al lang niet meer zijn bijgewerkt. Dit is vooral belangrijk om veiligheidsrisico’s te minimaliseren, aangezien oudere containers verouderde softwareversies of beveiligingslekken kunnen bevatten.
Als u zich zorgen maakt over de veiligheid van een container of vermoedt dat deze gecompromitteerd is, moet u deze onmiddellijk verwijderen. Hetzelfde geldt voor containers die vanwege conflicten of andere problemen niet kunnen worden gestart.
Hoe verwijder je een of meer Docker-containers?
Het verwijderen van een of meer specifieke Docker-containers is een veelvoorkomend proces wanneer het gaat om het verwijderen van onnodige of inactieve containers van de Docker-host.
Stap 1: Container-ID’s of namen weergeven
Eerst moet u de ID’s of namen van de containers die u wilt verwijderen achterhalen. U kunt de volgende opdracht gebruiken om een lijst met alle actieve en gestopte containers weer te geven:
docker ps -abashStap 2: Verwijder de container
U kunt eenvoudigweg de container-ID’s of -namen invoeren, gescheiden door spaties, na het commando docker rm:
docker rm container_id_or_name1 container_id_or_name2bashHoe een Docker-container verwijderen bij het afsluiten
Om een container automatisch te verwijderen nadat deze is afgesloten, stelt u de vlag --rm in wanneer u de container start met het commando docker run. Deze vlag zorgt ervoor dat de container automatisch wordt verwijderd zodra deze klaar is.
docker run --rm image_namebashHoe alle afgesloten Docker-containers te verwijderen
Het is ook mogelijk om alle afgesloten containers in één keer te verwijderen door de containers op basis van hun status te filteren en ze te verwijderen met behulp van het rm -commando.
Stap 1: Lijst met afgesloten containers
Met optie -f status=exited kunt u de containerlijst filteren om alleen de afgesloten containers weer te geven.
docker ps -a -f status=exitedbashStap 2: Verwijder lege containers
We gebruiken de uitvoer van de vorige stap om de ID’s van de afgesloten containers te verkrijgen en geven deze rechtstreeks door aan het docker rm -commando.
docker rm $(docker ps -a -f status=exited -q)bashHoe alle Docker-containers met meer dan één filter te verwijderen
Je kunt Docker-containers met meer dan één filter verwijderen door het docker ps -commando samen met de filteropties te gebruiken en de uitvoer vervolgens door te geven aan het docker rm.
Stap 1: Containers met filters weergeven
Eerst voeren we het commando docker ps in met de filteropties om een lijst van de containers te verkrijgen volgens de gewenste criteria. Created is een andere selecteerbare status naast exited. Containers met de status created zijn containers die zijn aangemaakt maar nog niet zijn uitgevoerd.
docker ps -a -f status=exited -f status=createdbashStap 2: Verwijder de Docker-container
Net als in het bovenstaande voorbeeld geven we de uitvoer door aan docker rm.
docker rm $(docker ps -a -f status=exited -f status=created -q)bashHoe Docker-containers volgens een patroon te verwijderen
Alle Docker-containers vinden die aan een bepaald patroon voldoen en ze vervolgens verwijderen met awk, xargs en docker rm is een efficiënte manier om containers selectief te verwijderen.
Stap 1: Maak een lijst van alle containers met een patroon
Als u het commando docker ps -a in combinatie met grep gebruikt, krijgt u alle containers met namen of tags die aan een specifiek patroon voldoen. U kunt bijvoorbeeld alle containers weergeven waarvan de naam begint met ‘test-’:
docker ps -a | grep "test-"bashStap 2: Docker-containers verwijderen
Met het commando awk kunt u specifieke kolommen uit het uitvoerresultaat selecteren. Hier willen we de eerste kolom extraheren die de container-ID’s bevat. We kunnen xargs gebruiken om de ID’s door te geven aan het commando docker rmi en de Docker-containers te verwijderen.
docker ps -a | grep "test-" | awk '{print $1}' | xargs docker rmibashHoe alle Docker-containers te stoppen en te verwijderen
U kunt alle actieve en inactieve containers op uw systeem in één keer stoppen en verwijderen. Dit kan handig zijn als u uw Docker-omgeving grondig wilt opschonen.
Stap 1: Maak een lijst van alle containers
Voer de volgende opdracht in om de lijst met containers te controleren:
docker ps -abashStap 2: Stop de containers
Als je klaar bent, stuur je de uitvoer door naar docker stop. Hierdoor worden alle containers gestopt.
docker stop $(docker ps -a -q)bashStap 3: Docker-containers verwijderen
Nadat alle containers zijn gestopt, kunt u ze verwijderen met het commando docker rm:
docker rm $(docker ps -a -q)bashIn tegenstelling tot normale Docker-containers zijn Docker-container volumes mechanismen die gegevenspersistentie en het delen van gegevens tussen containers en het hostsysteem mogelijk maken.
In onze digitale gids vindt u andere Docker-tutorials, waaronder hoe u een Docker-volume verwijdert en hoe u een Docker-image verwijdert.