docker rmi usuwa obrazy Dockera z lokalnego magazynu (czyli z dysku Twojej maszyny, nie z rejestru typu Docker Hub). Używasz jej, gdy chcesz posprzątać po nieudanych buildach, zwolnić miejsce zajmowane przez stare wersje albo pozbyć się obrazów, których już nie potrzebujesz. Wskazujesz obraz po nazwie z tagiem (np. nginx:latest) albo po ID, a Docker zdejmuje tag i — jeśli to był ostatni tag wskazujący na dane warstwy — kasuje też same warstwy.
Składnia i najważniejsze opcje
Podstawowa forma to docker rmi [OPCJE] OBRAZ [OBRAZ...]. Możesz podać kilka obrazów naraz, oddzielając je spacjami.
-f,--force— wymusza usunięcie obrazu, nawet jeśli ma wiele tagów lub jest używany przez zatrzymane kontenery. Przy wielu tagach zdejmuje tag zamiast kasować warstwy.--no-prune— nie usuwa nieotagowanych obrazów-rodziców (warstw pośrednich). Domyślnie Docker sprząta osierocone warstwy.
To wszystkie flagi tego polecenia — docker rmi jest celowo ubogie. Synonim to docker image rm, działa identycznie.
Przykłady użycia
docker rmi nginx:latest— usuwa konkretny obraz po nazwie i tagu.docker rmi 3f8a 9d2c e1b7— kasuje trzy obrazy naraz, podane po skróconym ID.docker rmi -f myapp:dev— wymusza usunięcie, gdy obraz blokuje zatrzymany kontener albo ma kilka tagów.docker rmi $(docker images -f "dangling=true" -q)— czyści wszystkie dangling obrazy (te bez tagu, w listingu jako).docker rmi $(docker images -q)— usuwa wszystkie lokalne obrazy. Mocne posunięcie, używaj świadomie.
Częste błędy i pułapki
Najczęstszy komunikat to image is being used by running container albo image is referenced in multiple repositories. W pierwszym przypadku musisz najpierw zatrzymać i usunąć kontener (docker rm), bo -f nie ruszy obrazu używanego przez działający kontener — tylko przez zatrzymany. W drugim obraz ma kilka tagów: albo podaj konkretny tag, albo dodaj --force.
Pamiętaj o różnicy: docker rmi kasuje obrazy, a docker rm kontenery — łatwo pomylić w pośpiechu. Jeśli chcesz hurtowego sprzątania bez ręcznego sklejania komend, prościej i bezpieczniej działa docker image prune (usuwa dangling) lub docker image prune -a (usuwa też nieużywane otagowane). Uważaj na $(docker images -q) — jeśli ten sam obraz ma kilka tagów, ID powtórzy się na liście i dostaniesz nieszkodliwy, ale brzydki błąd przy próbie ponownego usunięcia.
Powiązane komendy: docker images, docker image prune, docker rm, docker system prune, docker pull.