Ako vam je potrebna sveobuhvatna platforma spremnika otvorenog koda za stvaranje neovisnosti između aplikacija i infrastrukture, Docker je vaš najsigurniji ulog. Ako ste ga imali priliku koristiti, već znate koliko je sposoban i jednostavan za upotrebu
Veliki broj cloud i IT kompanija smatra ga izuzetno korisnim, a njegova je popularnost definitivno zaslužena.
Ipak, to ga ne čini savršenim. Dokaz se može vidjeti u ograničenjima koja dolaze s uklanjanjem slika, volumena, spremnika i mreža. Iako su ove naredbe dostupne, nisu toliko sveobuhvatne koliko bi korisnici mogli željeti da budu.
Ovdje ćete vidjeti glavne probleme s kojima se korisnici susreću, kao i rješenja za njih. Naučit ćete kako na jednostavan način ukloniti slike i spremnike.
Pitanje
Kontejnerska tehnologija pruža način vizualizacije operativnih sustava. Omogućuje da se aplikacija spakira sa svim što je potrebno za pokretanje, što joj omogućava da djeluje neovisno od OS-a.
Slike spremnika su samostalni izvršni paketi aplikacija koji uključuju sve što je potrebno da aplikacija ispravno radi. Runtime, kôd, konfiguracije i sistemski alati i knjižnice nalaze se u svakoj slici.
Dok koristite Docker, ove se slike gomilaju. Vremenom se nakuplja velik broj neiskorištenih slika, količina podataka i spremnika, što stvara pretrpano okruženje Dockera. Kad se to dogodi, potrebno je osvježiti okoliš kako bi platforma radila kako treba.
Mnogo je naredbi koje to mogu učiniti, pa razmotrimo glavne načine uklanjanja nereda u vašem Docker okruženju.
Uklanjanje Docker slika
Prije nego što uklonite nepotrebne slike, morate ih razlikovati od korisnih. To se lako može postići popisom svih slika koje vaš sustav sadrži pomoću naredbe za upravljanje slikama.
Evo kako to izgleda:
$ docker image #list the most recently created images
Ili
$ docker image -a #list all images
Pomoću druge naredbe vidjet ćete sve svoje slike doktora. Sve što trebate učiniti je pronaći takozvane 'viseće slike'. Ovo su sve Dockerove slike koje ne sadrže oznaku. Bez oznake nema veze s označenim slikama, što znači da one više nisu korisne.
Možete izbrisati jednu ili više slika pomoću ID-a slike. Da biste to učinili, upotrijebite jednu od ovih naredbi:
$ docker rmi d65c4d6a3580 #remove a single image
$ docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc #remove multiple images
Pogodnije rješenje je korištenje zastave filtra -f za popis svih visećih slika.
Da biste izbrisali ove slike i očistili prostor na disku, koristite jednu od sljedećih naredbi:
$ docker image prune #interactively remove dangling images
Ili
$ docker rmi $(docker images -q -f dangling=true)
Možete ukloniti sve Docker slike na sličan način. Listajte ih pomoću $ docker images –a naredbe, a zatim ih uklonite koristeći sljedeće:
$ (docker rmi $(docker images -a -q)
Druga je mogućnost brisanje slika koje slijede određeni obrazac. Za popis ih koristite sljedeću naredbu:
$ docker images -a | grep "pattern"
Zatim ih uklonite koristeći:
$ docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
Uklanjanje spremnika
Još jedna stvar koju biste možda željeli raditi nakon određenog vremena rada s Dockerom jeste brisanje jednog ili više spremnika.
Slično uklanjanju slika, prvo ih morate popisati pomoću sljedeće naredbe:
$ docker ps
Ili
$ docker ps -a
Kad pronađete spremnike koje želite ukloniti, upotrijebite njihov ID.
$ docker rm 0fd99ee0cb61 #remove a single container
$ docker rm 0fd99ee0cb61 0fd99ee0cb61 #remove multiple containers
U slučaju da se spremnik koji pokušate ukloniti pokrenuti, za zaustavljanje možete ga koristiti sljedeću naredbu:
$ docker stop 0fd99ee0cb61
$ docker rm -f 0fd99ee0cb61
Konačno, možete zaustaviti i ukloniti sve nepotrebne spremnike pomoću sljedećih naredbi:
$ docker stop $(docker ps -a -q) #stop all containers
$ docker container prune #interactively remove all stopped containers
Ili
$ docker rm $(docker ps -qa)
Tako ćete osloboditi vrijedan prostor na disku i započeti svježe.
Završna riječ
Kao što vidite, uklanjanje Docker slika i spremnika nije tako zastrašujuće koliko može. Sada kada znate ove naredbe, možete imati veću kontrolu nad svojim Dockerovim iskustvom.
Naravno, ovo su samo neke naredbe, a možete koristiti i razne druge kombinacije. Ipak, ovi će posao odraditi sasvim u redu, pa ih slobodno isprobajte.