Docker-afbeeldingen, containers en volumes verwijderen
Docker is een open-source, krachtig, veilig, betrouwbaar en efficiënt containerplatform dat realistische onafhankelijkheid tussen applicaties en infrastructuur mogelijk maakt. Het wordt op grote schaal toegepast door IT- en cloudbedrijven om eenvoudig applicaties te creëren, implementeren en uitvoeren.
Een container is een technologie voor het visualiseren van besturingssystemen, waarmee een applicatie kan worden verpakt met alles wat nodig is om deze uit te voeren, zodat deze onafhankelijk van het besturingssysteem kan draaien. Een containerimage is een op zichzelf staand, uitvoerbaar pakket van een applicatie dat alles bevat wat nodig is om de applicatie uit te voeren: code, runtime, systeemtools en bibliotheken, evenals configuraties.
We hebben al een serie over Docker besproken, waarin wordt uitgelegd hoe je Docker installeert, applicaties in containers uitvoert en automatisch docker-images bouwt met dockerfile.
- Installeer Docker en leer de basismanipulatie van containers in CentOS en RHEL 7/6
- Applicaties implementeren en uitvoeren in Docker Containers op CentOS/RHEL 7/6
- Bouw en configureer automatisch Docker-images met Dockerfile op CentOS/RHEL 7/6
- Hoe u een eenvoudige Apache-webserver in een Docker-container instelt
In dit artikel leggen we uit hoe u docker-images, containers en volumes verwijdert via de docker-opdrachtregeltool in Linux-systemen.
Docker-afbeeldingen verwijderen
Voordat u docker-images verwijdert, kunt u alle bestaande images op uw systeem weergeven met de opdracht Image Management.
docker image #list the most recently created images
OR
docker image -a #list all images
Als we naar de uitvoer in de volgende schermafbeelding kijken, hebben we enkele afbeeldingen zonder tag (waarin in plaats daarvan wordt weergegeven). Deze worden “bungelende afbeeldingen” genoemd. Ze hebben geen enkele relatie meer met getagde afbeeldingen; ze zijn niet meer bruikbaar en verbruiken alleen schijfruimte.
U kunt een of meer oude of ongebruikte Docker-images verwijderen met behulp van bijvoorbeeld de ID van de afbeelding (waarbij d65c4d6a3580 de afbeeldings-ID is).
docker rmi d65c4d6a3580 #remove a single image
docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc #remove multiple images
U kunt hangende afbeeldingen (niet-gelabelde afbeeldingen) weergeven met behulp van de filtervlag -f
, zoals weergegeven.
docker images -f dangling=true
Gebruik een van deze opdrachten om alle bungelende afbeeldingen te verwijderen, zodat u verspilde schijfruimte kunt terugwinnen.
docker image prune #interactively remove dangling images
OR
docker rmi $(docker images -q -f dangling=true)
Gebruik de volgende opdracht om alles te verwijderen dat niet aan een container is gekoppeld.
docker image prune -a
Hoe Docker-containers te verwijderen
U kunt beginnen met het weergeven van alle docker-containers op uw systeem met behulp van de volgende opdracht.
docker ps
OR
docker ps -a
Nadat u de container(s) die u wilt verwijderen heeft geïdentificeerd, kunt u deze bijvoorbeeld aan de hand van hun ID verwijderen.
docker rm 0fd99ee0cb61 #remove a single container
docker rm 0fd99ee0cb61 0fd99ee0cb61 #remove multiple containers
Als een container actief is, kunt u deze eerst stoppen en verwijderen, zoals weergegeven.
docker stop 0fd99ee0cb61
docker rm -f 0fd99ee0cb61
U kunt een container ook geforceerd verwijderen terwijl deze actief is, door de vlag --force
of -f
toe te voegen. Hierdoor wordt er een < sterk>SIGKILL signaal zoals weergegeven.
docker rm -f 0fd99ee0cb61
U kunt containers ook verwijderen met behulp van filters. Gebruik deze opdracht om bijvoorbeeld alle afgesloten containers te verwijderen.
docker rm $(docker ps -qa --filter "status=exited")
Gebruik de volgende opdrachten om alle containers te stoppen en te verwijderen.
docker stop $(docker ps -a -q) #stop all containers
docker container prune #interactively remove all stopped containers
OR
docker rm $(docker ps -qa)
Hoe Docker-volumes te verwijderen
Begin net als voorheen met het weergeven van alle docker-volumes op uw systeem met de opdracht volumebeheer, zoals weergegeven.
docker volume ls
Om een of meer volumes te verwijderen, gebruikt u de volgende opdracht (houd er rekening mee dat u een volume dat in gebruik is door een container niet kunt verwijderen).
docker volume rm volume_ID #remove a single volume
docker volume rm volume_ID1 volume_ID2 #remove multiple volumes
Gebruik de vlag -f
om de verwijdering van een of meer volumes te forceren.
docker volume rm -f volume_ID
Gebruik de volgende opdracht om bungelende volumes te verwijderen.
docker volume rm $(docker volume ls -q --filter dangling=true)
Voer de volgende opdracht uit om alle ongebruikte lokale volumes te verwijderen. Hiermee worden volumes interactief verwijderd.
docker volume prune
Hoe ongebruikte of bungelende afbeeldingen, containers, volumes en netwerken te verwijderen
Met één enkele opdracht kunt u alle bungelende en niet-gerefereerde gegevens verwijderen, zoals gestopte containers en afbeeldingen zonder containers. Standaard worden volumes niet verwijderd, om te voorkomen dat vitale gegevens worden verwijderd als er momenteel geen container is die het volume gebruikt.
docker system prune
Om volumes te snoeien, voegt u eenvoudig de vlag --volumes
toe aan de onderstaande opdracht, zoals weergegeven.
docker system prune --volumes
Opmerking: om het docker-opdrachtregelprogramma uit te voeren zonder de opdracht sudo, moet u bijvoorbeeld een gebruiker toevoegen aan de docker-groep.
sudo usermod -a -G docker aaronkilik
Zie voor meer informatie de helppagina voor de bovenstaande docker-objectbeheeropdrachten.
docker help
docker image help
docker container help
docker volume help
Dat is het voor nu! In dit artikel hebben we uitgelegd hoe u docker-images, containers en volumes kunt verwijderen via de docker-opdrachtregeltool. Als u vragen of gedachten heeft, kunt u het onderstaande feedbackformulier gebruiken om ons te bereiken.