Czy jest jakieś polecenie, które może łączyć polecenia docker stop
i docker rm
razem? Za każdym razem, gdy chcę usunąć działający kontener, muszę wykonać 2 polecenia po kolei, zastanawiam się, czy istnieje połączone polecenie, które może uprościć ten proces.
docker stop CONTAINER_ID
docker rm CONTATINER_ID
Odpowiedzi:
Możesz użyć :
Usunie pojemnik, nawet jeśli nadal działa.
https://docs.docker.com/engine/reference/commandline/rm/
Możesz także uruchomić swoje kontenery z
--rm
opcją, zostanie ona automatycznie usunięta po zatrzymaniu.https://docs.docker.com/engine/reference/run/#clean-up-rm
Edit:
rm -f
może być niebezpieczne dla danych i najlepiej nadaje się do badań lub rozwoju pojemników. Warto przeczytać komentarz @ Bernarda na ten temat.źródło
docker rm -f
wysyła sygnał SIGKILL do kontenera. Może to uniemożliwić pojemnikowi czas na prawidłowe zapisanie jego stanu. W przypadku kontenerów bezstanowych należy naprawdę użyć,docker stop
po którym następujedocker rm
. Spowoduje to wysłanie sygnału SIGTERM, który domyślnie daje kontenerom maksymalnie 10 sekund na zakończenie ich zamknięcia, zanim demon Dockera ostatecznie wyśle SIGKILL.źródło
Możesz zatrzymać i usunąć kontener za pomocą jednego polecenia, które
$_
daje ostatnie echoźródło
W moim przypadku do usunięcia wszystkich uruchomionych kontenerów użyłem
źródło
https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/
Możesz użyć kill, a także używając rm i flagi siły, użyje również kill.
źródło
Usuń wszystkie pojemniki:
docker ps -aq | xargs docker rm -f
źródło
sudo docker ps -aq | sudo xargs docker rm -f
Spowoduje to zatrzymanie i usunięcie wszystkich obrazów, w tym uruchomionych kontenerów, tak jak używamy -f
źródło
Użyj polecenia docker ps z flagą -a, aby zlokalizować nazwę lub identyfikator kontenerów, które chcesz usunąć
Aby usunąć: $ docker rm ID_or_Name ID_or_Name
Usuń pojemnik po wyjściu:
Jeśli wiesz, kiedy tworzysz kontener, którego nie będziesz chciał zachować, gdy skończysz, możesz uruchomić docker run --rm, aby automatycznie usunąć go po zamknięciu.
Uruchom i usuń:
docker run --rm image_name
Usuń wszystkie opuszczone pojemniki:
Możesz lokalizować kontenery za pomocą docker ps -a i filtrować je według ich stanu: utworzony, restartowany, uruchomiony, wstrzymany lub zakończony. Aby przejrzeć listę zamkniętych kontenerów, użyj flagi -f do filtrowania na podstawie statusu. Po zweryfikowaniu, że chcesz usunąć te kontenery, użyj -q, aby przekazać identyfikatory do polecenia docker rm.
Lista:
Usuń pojemniki za pomocą więcej niż jednego filtra :
Filtry platformy Docker można łączyć, powtarzając flagę filtru z dodatkową wartością. Spowoduje to wyświetlenie listy kontenerów spełniających dowolny warunek. Na przykład, jeśli chcesz usunąć wszystkie kontenery oznaczone jako Utworzone (stan, który może powstać po uruchomieniu kontenera z nieprawidłowym poleceniem) lub Zakończone, możesz użyć dwóch filtrów:
Zatrzymaj i usuń wszystkie pojemniki:
źródło
Do wyjmowania pojedynczego pojemnika
Do usuwania wszystkich pojemników
źródło
Aby usunąć wszystkie zatrzymane pojemniki
docker system prune
Aby zatrzymać kontener na żywo,
docker stop CONTAINER_ID
czeka 10 sekund i wywołujedocker kill CONTAINER_ID
Lub za pomocą
docker kill CONTAINER_ID
możesz natychmiast zatrzymać pojemnikźródło