Chcę usunąć kontener w Docker, ale gdy chcesz usunąć, pojawia się błąd
Mój następny krok przed usunięciem kontenera, zobacz listę istniejących kontenerów
sts@Yudi:~/docker$ sudo docker ps -as
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
78479ffeba5c ubuntu "/bin/bash" 42 hours ago Exited (0) 42 hours ago sharp_wescoff 81 B (virtual 187.7 MB)
0bd2b54678c7 training/webapp "python app.py" 5 days ago Exited (0) 5 days ago backstabbing_ritchie 0 B (virtual 323.7 MB)
0adbc74a3803 training/webapp "python app.py" 5 days ago Exited (143) 5 days ago drunk_feynman 0 B (virtual 323.7 MB)
jeden Chcę usunąć listę, a mianowicie „szkolenie / aplikacja internetowa”, ale wystąpił błąd
sts@Yudi:~/docker$ sudo docker rmi training/webapp
Error response from daemon: conflict: unable to remove repository reference "training/webapp" (must force) - container 0bd2b54678c7 is using its referenced image 54bb4e8718e8
Error: failed to remove images: [training/webapp]
Czy kontener działa w obrazach?
Proszę pomóż
docker
containers
Yuday
źródło
źródło
Odpowiedzi:
Istnieje różnica między obrazami platformy Docker a kontenerami platformy Docker. Sprawdź to pytanie SO .
Krótko mówiąc, kontener to działająca instancja obrazu. dlatego nie można usunąć obrazu, jeśli istnieje uruchomiony kontener z tego obrazu. Musisz tylko najpierw usunąć kontener.
Aktualizacja dla Dockera 1.13+ [od stycznia 2017 r.]
Zasadniczo powyższe polecenia można również przepisać, jaśniej, jako:
Ponadto, jeśli chcesz usunąć WSZYSTKO, możesz użyć:
źródło
docker rmi -f id
do „wymuszenia” usunięcia.-f
pomaga, gdy chcesz usunąć obraz, do którego odwołuje się wiele repozytoriów, co jest kolejnym częstym powodem niepowodzenia usunięcia obrazu.docker container ls
zawiera tylko listę działających kontenerów. To mi przeszkadzało, dopóki nie zdałem sobie sprawy, że dodanie-a
flagi powoduje wyświetlenie ich wszystkich.Najpierw usuń nazwy kontenerów
Wynik
usuń drugą część, która znajduje się na kontenerze do usunięcia
Po drugie, wyjmij pojemnik
Wynik
Sprawdź kontynent
źródło
rm `docker ps -aq`
czyszczenie przy użyciu dockera, zamiast usuwania ich pojedynczo. Więcej informacji tutajJeśli chcesz wyczyścić obrazy i kontenery dockera
UWAGA: to wszystko spłukuje
zatrzymać wszystkie pojemniki
usunąć wszystkie pojemniki
usuń wszystkie obrazy
źródło
docker rm $(docker ps -a -q)
. Dzięki!możesz użyć
-f
opcji wymuszenia usunięcia kontenerów.sudo docker rmi -f training/webapp
Możesz zatrzymać używanie kontenerów
sudo docker stop training/webapp
przed usunięciemźródło
sudo docker stop 0bd2b54678c7
Jeśli masz uruchomione wielokrotne kontenery docker, użyj tego
$ docker rm $(docker ps -aq)
Spowoduje to usunięcie wszystkich bieżących dokerów wymienionych w poleceniu „ps -aq”.
Źródło: aaam na https://github.com/docker/docker/issues/12487
źródło
docker image ls
a następnie uzyskaćdocker image rm X
każdy X zls
wyjścia.Zauważyłem, że jest to pytanie sprzed 2 lat, ale nadal chcę podzielić się moim obejściem dla tego konkretnego pytania:
Po pierwsze, uruchom
docker container ls -a
listę wszystkich posiadanych kontenerów i wskaż, które chcesz usunąć.Po drugie, usuń ten za pomocą polecenia
docker container rm <CONTAINER ID>
(jeśli kontener jest obecnie uruchomiony, należy go najpierw zatrzymać, uruchomić,docker container stop <CONTAINER ID>
aby bezpiecznie zatrzymać określony kontener, jeśli nie zatrzyma go z jakiegokolwiek powodu, alternatywnie możesz uruchomićdocker container kill <CONTAINER ID> to force shutdown of the specified container
).Po trzecie, usuń pojemnik, uruchamiając
docker container rm <CONTAINER ID>
.Na koniec możesz uruchomić,
docker image ls -a
aby wyświetlić wszystkie obrazy i usunąć ten, który chcesz, uruchamiającdocker image rm <hash>
.źródło
Usuń obrazy dockera>
Lista wszystkich kontenerów
Lista wszystkich obrazów
Zatrzymaj kontener według identyfikatora kontenera
Usuń kontener według identyfikatora kontenera
Jeśli nie chcesz zatrzymać i usunąć, możesz wymusić usunięcie
Usuń obraz
Gotowe!
źródło
lista wszystkich obrazów dockera:
lista wszystkich istniejących kontenerów Dockera:
usuń wszystkie docelowe kontenery, które używają obrazu, który chcesz usunąć:
usuń docelowy obraz:
źródło
Usuń tylko kontenery skojarzone z określonym obrazem
źródło