docker rmi

Usuwa jeden lub więcej obrazów lokalnych.

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.