Jeśli potrzebujesz kompleksowej platformy kontenerowej typu open source do tworzenia niezależności między aplikacjami a infrastrukturą, Docker jest najbezpieczniejszym wyborem. Jeśli miałeś okazję go użyć, już wiesz, jak bardzo jest on zdolny i łatwy w użyciu
Wiele firm zajmujących się chmurą i IT uważa, że jest to niezwykle przydatne, a jego popularność jest zdecydowanie zasłużona.
To jednak nie czyni go idealnym. Dowodem na to są ograniczenia związane z usuwaniem obrazów, woluminów, kontenerów i sieci. Chociaż te polecenia są dostępne, nie są tak kompleksowe, jak użytkownicy mogą chcieć.
Tutaj zobaczysz główne problemy napotykane przez użytkowników, a także rozwiązania dla nich. Dowiesz się, jak w prosty sposób usuwać obrazy i pojemniki.
Problem
Technologia kontenerowa zapewnia sposób wizualizacji systemów operacyjnych. Pozwala spakować aplikację ze wszystkimi potrzebnymi do jej uruchomienia, co pozwala jej działać niezależnie od systemu operacyjnego.
Obrazy kontenerów to autonomiczne pakiety aplikacji, które zawierają wszystko, co jest potrzebne do poprawnego działania aplikacji. Środowisko wykonawcze, kod, konfiguracje oraz narzędzia systemowe i biblioteki są zawarte w każdym obrazie.
Podczas korzystania z Dockera obrazy te kumulują się. Z biegiem czasu gromadzi się duża liczba nieużywanych obrazów, woluminów danych i kontenerów, tworząc zatłoczone środowisko Docker. Gdy tak się stanie, konieczne jest odświeżenie środowiska, aby platforma działała tak, jak powinna.
Istnieje wiele poleceń, które mogą do tego doprowadzić, dlatego przyjrzyjmy się głównym sposobom uporządkowania środowiska Docker.
Usuwanie obrazów dokera
Aby usunąć niepotrzebne obrazy, musisz je odróżnić od przydatnych. Można to łatwo zrobić, wyświetlając listę wszystkich obrazów zawartych w systemie za pomocą polecenia zarządzania obrazami.
Oto jak to wygląda:
$ docker image #list the most recently created images
Lub
$ docker image -a #list all images
Drugie polecenie spowoduje wyświetlenie wszystkich obrazów dokera. Wszystko, co musisz zrobić, to znaleźć tak zwane „wiszące obrazy”. Są to wszystkie obrazy Docker, które nie zawierają znacznika. Bez znacznika nie ma połączenia z oznaczonymi obrazami, co oznacza, że nie są już przydatne.
Możesz usunąć jeden lub więcej obrazów za pomocą Image ID. Aby to zrobić, użyj jednego z następujących poleceń:
$ docker rmi d65c4d6a3580 #remove a single image
$ docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc #remove multiple images
Bardziej wygodnym rozwiązaniem jest użycie flagi filtru -f do wyświetlenia listy wszystkich wiszących obrazów.
Aby usunąć te obrazy i wyczyścić miejsce na dysku, użyj jednego z następujących poleceń:
$ docker image prune #interactively remove dangling images
Lub
$ docker rmi $(docker images -q -f dangling=true)
Możesz usunąć wszystkie obrazy Dockera w podobny sposób. Wyświetl je za pomocą polecenia $ docker images –a, a następnie usuń je, wykonując następujące czynności:
$ (docker rmi $(docker images -a -q)
Inną opcją jest usunięcie obrazów zgodnych z określonym wzorem. Aby je wyświetlić, użyj następującego polecenia:
$ docker images -a | grep "pattern"
Następnie usuń je, używając:
$ docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
Usuwanie pojemników
Kolejną rzeczą, którą możesz zrobić po pracy z Dockerem przez określony czas, jest usunięcie jednego lub więcej kontenerów.
Podobnie jak w przypadku usuwania obrazów, musisz je najpierw wyświetlić za pomocą następującego polecenia:
$ docker ps
Lub
$ docker ps -a
Gdy znajdziesz pojemniki, które chcesz usunąć, użyj ich identyfikatora, aby to zrobić.
$ docker rm 0fd99ee0cb61 #remove a single container
$ docker rm 0fd99ee0cb61 0fd99ee0cb61 #remove multiple containers
Jeśli kontener, który próbujesz usunąć, jest uruchomiony, możesz użyć następującego polecenia, aby go zatrzymać:
$ docker stop 0fd99ee0cb61
$ docker rm -f 0fd99ee0cb61
Na koniec możesz zatrzymać i usunąć wszystkie niepotrzebne pojemniki, używając następujących poleceń:
$ docker stop $(docker ps -a -q) #stop all containers
$ docker container prune #interactively remove all stopped containers
Lub
$ docker rm $(docker ps -qa)
Pozwoli ci to zwolnić cenne miejsce na dysku i zacząć od nowa.
Ostatnie słowo
Jak widać, usuwanie obrazów i kontenerów Dockera nie jest tak zniechęcające, jak to tylko możliwe. Teraz, gdy znasz te polecenia, możesz mieć większą kontrolę nad swoim doświadczeniem w Docker.
Oczywiście są to tylko niektóre z poleceń i można użyć wielu innych kombinacji. Mimo to dobrze sobie z tym poradzą, więc wypróbuj je.