Jak usunąć stare kontenery Docker

To pytanie jest związane z Czy powinienem martwić się o nadmiar, niedziałających kontenerów Docker?.

Zastanawiam się, jak usunąć stare kontenery. docker rm 3e552code34a pozwala usunąć jedną, ale mam już wiele. docker rm --help nie daje opcji wyboru (jak wszystkie, lub według nazwy obrazu).

Może istnieje katalog, w którym przechowywane są te kontenery, gdzie mogę je łatwo usunąć ręcznie?

 1016
Author: Community, 2013-06-21

30 answers

Jest nowa funkcja w Docker 1.13.x o nazwie Docker container prune : docker container prune

To zrobi to, co chcesz i powinno działać na wszystkich platformach w ten sam sposób.

Istnieje również Docker system: docker system prune, które czyści kontenery, obrazy, woluminy i sieci w jednym poleceniu.

Oryginalna Odpowiedź:

Mówiono o komendzie Docker cleanup. Informacje na temat tego biletu znajdziesz: zaimplementuj polecenie "clean" (#928)

Dopóki to polecenie nie będzie dostępne, możesz ciągnąć polecenia Dockera razem z innymi poleceniami Uniksa, aby uzyskać to, czego potrzebujesz. Oto przykład, jak wyczyścić stare pojemniki, które mają tygodnie: {]}

$ docker ps --filter "status=exited" | grep 'weeks ago' | awk '{print $1}' | xargs --no-run-if-empty docker rm

Aby dać kredyt, gdzie jest należny, ten przykład pochodzi z https://twitter.com/jpetazzo/status/347431091415703552 .

 1141
Author: Ken Cochrane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-31 13:17:05

Inna metoda, którą otrzymałem od Guillaume J. Charmes (kredyt tam, gdzie jest należny):

docker rm `docker ps --no-trunc -aq`

Usunie wszystkie pojemniki w elegancki sposób.

I Bartosza Bilickiego, Dla Windows:

FOR /f "tokens=*" %i IN ('docker ps -a -q') DO docker rm %i

Dla PowerShell:

docker rm @(docker ps -aq)

[[5]}aktualizacja z Docker 1.13 (Q4 2016), kredyt na VonC (później w tym wątku):

docker system prune usunie wszystkie nieużywane dane (tj. w kolejności: kontenery zatrzymane, woluminy bez kontenerów i obrazy bez pojemniki).

Zobacz PR 26108 i commit 86de7c0 , które wprowadzają kilka nowych poleceń, które ułatwiają wizualizację ilości miejsca zajmowanego przez demona Dockera na dysku i pozwalają na łatwe usuwanie "niepotrzebnego" nadmiaru.

docker system prune

WARNING! This will remove:
    - all stopped containers
    - all volumes not used by at least one container
    - all images without at least one container associated to them
Are you sure you want to continue? [y/N] y
 589
Author: qkrijger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:54

Zaktualizowana ODPOWIEDŹ Użyj docker system prune LUB docker container prune teraz. Zobacz zaktualizowaną odpowiedź VonC .

Poprzednia ODPOWIEDŹ Składając kilka różnych wskazówek powyżej, najbardziej eleganckim sposobem na usunięcie wszystkich nie działających kontenerów wydaje się być: {]}

docker rm $(docker ps -q -f status=exited)

  • -q wypisuje tylko identyfikatory kontenerów (bez nagłówków kolumn)
  • -f pozwala na filtrowanie listy drukowanych kontenerów (w tym przypadku filtrujemy, aby wyświetlać tylko kontenery z zakończeniem)
 390
Author: Ryan Walls,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-23 17:32:57

Oficjalny sposób to:

docker rm `docker ps -aq`

Opiekunowie Dockera wskazali, że nie będzie dla tego polecenia-a Ty komponujesz polecenia w ten sposób:

Omówiliśmy to już wcześniej i wolimy, aby użytkownicy korzystali z powyższej linii bez konieczności dodawania dodatkowego kodu do Dockera.

 242
Author: Michael Neale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 03:11:32

W wersji Docker 1.13 (Q4 2016) masz teraz:

docker system prune -a usunie wszystkie nieużywane dane (tj. w kolejności: kontenery zatrzymane, woluminy bez kontenerów i obrazy bez kontenerów).

docker system prune without-a usunie (dla obrazów) tylko zwisające obrazy lub obrazy bez znacznika, jak skomentował przez smilebomb .

Zobacz PR 26108 i commit 86de7c0, które wprowadzają kilka nowych komend ułatwiających wizualizacja, ile miejsca zajmuje dane demona Dockera na dysku i umożliwienie łatwego usunięcia "niepotrzebnego" nadmiaru.

docker system prune -a

WARNING! This will remove:
    - all stopped containers
    - all volumes not used by at least one container
    - all images without at least one container associated to them
Are you sure you want to continue? [y/N] y

Jako wjv komentarze,

Istnieje również docker {container,image,volume,network} prune, które mogą być używane do usuwania nieużywanych instancji tylko jednego typu obiektu.

Wprowadzony w commit 913e5cb, tylko dla Dockera 1.13+.

docker container prune
 110
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-20 15:04:17

Jest teraz możliwe użycie filtrowanie z docker ps:

docker rm $(docker ps -q -f status=exited)

I dla obrazów :

docker rmi $(docker images -q -f "dangling=true")

Jednakże, każdy z nich spowoduje, że docker rm lub docker rmi wyrzuci błąd, gdy nie ma pasujących kontenerów. Starsza sztuczka docker rm $(docker ps -aq) była jeszcze gorsza, ponieważ próbowała usunąć dowolny uruchomiony kontener, zawodząc przy każdym z nich.

Oto skrypt do dodania w swoim ~/.bashrc lub ~/.profile:

# Use `docker-cleanup --dry-run` to see what would be deleted.

function docker-cleanup {
  EXITED=$(docker ps -q -f status=exited)
  DANGLING=$(docker images -q -f "dangling=true")

  if [ "$1" == "--dry-run" ]; then
    echo "==> Would stop containers:"
    echo $EXITED
    echo "==> And images:"
    echo $DANGLING
  else
    if [ -n "$EXITED" ]; then
      docker rm $EXITED
    else
      echo "No containers to remove."
    fi
    if [ -n "$DANGLING" ]; then
      docker rmi $DANGLING
    else
      echo "No images to remove."
    fi
  fi
}

Edit: jak zaznaczono poniżej, oryginalna odpowiedź była za usunięciem obrazy, nie kontenery. Zaktualizowano, aby odpowiedzieć na oba pytania, w tym nowe linki do dokumentacji. Podziękowania dla Adriana (i odpowiedzi Ryana) za wzmiankę o nowym filtrowaniu ps.

 100
Author: caktux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-08 05:37:59

AKTUALIZACJA 2017 (NAJNOWSZE)

docker container prune

To - 2017 (OLD) way

Aby usunąć Wszystkie zatrzymane pojemniki

docker rm $(docker ps -a -q)

Aby usunąć wszystkie pojemniki (STOPPED and NON STOPPED)

docker rm  -f $(docker ps -a -q)
 89
Author: levi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-11 19:46:24

Usuń wszystkie zatrzymane pojemniki:

docker rm $(docker ps -a | grep Exited | awk '{print $1}')

Z komentarza autorstwa pauk960 :

Od wersji 1.3.0 możesz używać filtrów za pomocą docker ps, zamiast grep Exited Użyj docker ps -a -f status=exited. A jeśli używasz -q z nim, możesz uzyskać tylko identyfikatory kontenerów zamiast pełnego wyjścia, nie musisz używać awk do tego.

 47
Author: montells,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:03:09

Jeśli nie chcesz usuwać wszystkich kontenerów, możesz zaznaczyć wszystkie kontenery utworzone przed lub po określonym kontenerze za pomocą docker ps --before <container-ID> lub docker ps --since <container-ID>. Ta funkcja jest co najmniej w wersji Docker 0.6.5.

Załóżmy, że rozwinąłeś swój system i teraz działa, ale zostało jeszcze kilka kontenerów. Chcesz usunąć kontenery utworzone przed tą działającą wersją. Określ ID działającego kontenera za pomocą docker ps.

Usuń kontenery utworzone przed inny pojemnik

docker rm $(docker ps --before 9c49c11c8d21 -q)

Kolejny przykład. Baza danych jest już uruchomiona na kontenerze Docker. Opracowałeś swoją aplikację do uruchamiania na innym kontenerze, a teraz masz wiele niepotrzebnych kontenerów.

Usuń kontenery utworzone po określonym kontenerze

docker rm $(docker ps --since a6ca4661ec7f -q)

Docker przechowuje kontenery w /var/lib/docker/containers W Ubuntu. Myślę, że dodatkowe kontenery nie szkodzą innym, ale zajmują miejsce na dysku.

 31
Author: vesako,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-23 17:19:17

Aktualizacja: od wersji Dockera 1.13 (wydanej w styczniu 2017 r.), możesz wydać następujące polecenie, aby wyczyścić zatrzymane kontenery, nieużywane woluminy, zwisające obrazy i nieużywane sieci:

docker system prune

Jeśli chcesz mieć pewność, że usuwasz tylko kontenery o statusie exited, Użyj tego:

docker ps -aq -f status=exited | xargs docker rm

Podobnie, jeśli sprzątasz rzeczy Dockera, możesz pozbyć się nieoznaczonych, nienazwanych obrazów w ten sposób:

docker images -q --no-trunc -f dangling=true | xargs docker rmi
 29
Author: L0j1k,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-22 10:35:26

Oto mój skrypt docker-cleanup, który usuwa nieoznaczone kontenery i obrazy. Proszę sprawdzić źródło dla wszelkich aktualizacji.

#!/bin/sh
# Cleanup docker files: untagged containers and images.
#
# Use `docker-cleanup -n` for a dry run to see what would be deleted.

untagged_containers() {
  # Print containers using untagged images: $1 is used with awk's print: 0=line, 1=column 1.
  docker ps -a | awk '$2 ~ "[0-9a-f]{12}" {print $'$1'}'
}

untagged_images() {
  # Print untagged images: $1 is used with awk's print: 0=line, 3=column 3.
  # NOTE: intermediate images (via -a) seem to only cause
  # "Error: Conflict, foobarid wasn't deleted" messages.
  # Might be useful sometimes when Docker messed things up?!
  # docker images -a | awk '$1 == "<none>" {print $'$1'}'
  docker images | tail -n +2 | awk '$1 == "<none>" {print $'$1'}'
}

# Dry-run.
if [ "$1" = "-n" ]; then
  echo "=== Containers with uncommitted images: ==="
  untagged_containers 0
  echo

  echo "=== Uncommitted images: ==="
  untagged_images 0

  exit
fi

# Remove containers with untagged images.
echo "Removing containers:" >&2
untagged_containers 1 | xargs --no-run-if-empty docker rm --volumes=true

# Remove untagged images
echo "Removing images:" >&2
untagged_images 3 | xargs --no-run-if-empty docker rmi

Źródło: https://github.com/blueyed/dotfiles/blob/master/usr/bin/docker-cleanup

 19
Author: blueyed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-23 17:21:59

Usuwanie wszystkich kontenerów z powłoki Windows:

FOR /f "tokens=*" %i IN ('docker ps -a -q') DO docker rm %i
 10
Author: Bartosz Bilicki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-13 11:45:10

Najpierw przestań uruchamiać kontenery, zanim spróbujesz je usunąć

Usuń uruchomione kontenery

docker rm $(docker stop -t=1 $(docker ps -q))

Możesz użyć kill zamiast stop. W moim przypadku wolę stop, ponieważ mam tendencję do ponownego ich uruchamiania zamiast tworzenia nowego za każdym razem, więc staram się je ładnie wyłączyć.

Uwaga: próba zatrzymania kontenera spowoduje błąd:

Błąd: nie można usunąć działającego kontenera, proszę go najpierw zatrzymać

Usuń wszystkie pojemniki

docker rm $(docker ps -a -q)
 10
Author: Ulises,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-23 17:18:01

Https://github.com/HardySimpson/docker-cleanup

Docker cleanup

Mała powłoka all-in-one, która usuwa:

  • kontenery, które nie działają więcej niż jeden dzień temu
  • obrazy, które nie należą do żadnego pozostałego kontenera

Zamierzamy uruchomić jako zadanie crontab

Funkcja

  • usunie wszystkie <none>:<none> obrazy
  • jeśli obrazek zawiera wiele odniesień do repo: tag, usunie wszystkie repo: tag z wyjątkiem z uruchomieniem kontenera. W rzeczywistości jest to natura "docker rmi".
  • wiele komunikatów o błędzie będzie wyświetlanych na ekranie i możesz zdecydować się na 2>/dev/null lub nie
  • Naucz się czegoś z docker-gc i napraw jego problem (nie może usunąć obrazu, który ma mutliple repo: tag)
 7
Author: HardySimpson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-03 19:50:40

Użycie:

docker rm -f $(docker ps -a -q)

Skutecznie zatrzymuje się i usuwa wszystkie obecne lokalnie pojemniki.

 7
Author: Shashank G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 03:55:44

Tak więc osobiście polecam zrobić to jako część skryptu deploy dla obrazów i kontenerów, zachowując tylko najnowsze n kontenerów i obrazów. Moje obrazy Dockera oznaczam tym samym schematem wersjonowania, którego używam z git tag , jak również zawsze oznaczam najnowszy obraz Dockera za pomocą " latest."Oznacza to, że bez sprzątania czegokolwiek, moje obrazy dokera kończą się następująco:

REPOSITORY              TAG       IMAGE ID        CREATED         VIRTUAL SIZE
some_repo/some_image    0.0.5     8f1a7c7ba93c    23 hours ago    925.4 MB
some_repo/some_image    latest    8f1a7c7ba93c    23 hours ago    925.4 MB
some_repo/some_image    0.0.4     0beabfa514ea    45 hours ago    925.4 MB
some_repo/some_image    0.0.3     54302cd10bf2    6 days ago      978.5 MB
some_repo/some_image    0.0.2     0078b30f3d9a    7 days ago      978.5 MB
some_repo/some_image    0.0.1     sdfgdf0f3d9a    8 days ago      938.5 MB

Teraz, oczywiście nie chcę, aby wszystkie moje obrazy (lub kontenery) wracały do wieczności na wszystkie moje pudełka produkcyjne. Chcę tylko Ostatnie 3 lub 4 do wycofywania i pozbycia się wszystkiego innego. tail jest twoim najlepszym przyjacielem. Ponieważ docker images i docker ps obie kolejność według daty, możemy po prostu użyć tail, aby wybrać wszystkie oprócz trzech pierwszych i usunąć je:

docker rmi $(docker images -q | tail -n +4)

Uruchom go wraz ze skryptami wdrażania (lub lokalnie), aby zawsze zachować wystarczającą ilość obrazów, aby wygodnie się cofać, nie zajmując zbyt dużo miejsca ani nie zaśmiecając starych obrazów.

Osobiście trzymam tylko jedną kontener na moim pudełku produkcyjnym w dowolnym momencie, ale możesz zrobić to samo z pojemnikami, jeśli chcesz więcej: {]}

docker rm $(docker ps -aq | tail -n +4)

Wreszcie, w moim uproszczonym przykładzie mamy do czynienia tylko z jednym repozytorium na raz, ale jeśli masz więcej, możesz po prostu uzyskać trochę bardziej wyrafinowany z tym samym pomysłem. Powiedzmy, że chcę zachować trzy ostatnie obrazy z some_repo/some_image. Mogę po prostu zmieszać grep i awk i być w drodze:

docker rmi $(docker images -a | grep 'some_repo/some_image' | awk '{print $3}' | tail -n +4)

Znowu ten sam pomysł dotyczy kontenerów, ale rozumiesz to w tym momencie, więc przestanę podawać przykłady.

 6
Author: Eli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-23 17:25:13

Usunąć wszystkie zatrzymane pojemniki.

Sudo Docker rm $(sudo Docker ps-A-q)

Spowoduje to usunięcie wszystkich zatrzymanych kontenerów poprzez uzyskanie listy wszystkich kontenerów z Dockerem ps-A-q i przekazanie ich identyfikatorów do docker rm. Nie powinno to usuwać żadnych uruchomionych kontenerów i poinformuje cię, że nie może usunąć działającego obrazu.

Usuń wszystkie nieoznaczone obrazy

Teraz chcesz wyczyścić stare obrazy, aby zaoszczędzić trochę miejsca.

Sudo docker RMI $(sudo Docker images-q --filter"dangling = true")

 5
Author: Ric_Harvey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-05 12:25:08

Usuń 5 najstarszych pojemników:

docker rm `docker ps -aq | tail -n 5`

Zobacz ile pojemników zostało:

docker ps -aq | wc -l
 4
Author: Pithikos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-08 09:32:48

Nowa droga: spotify/Docker-gc play the trick.

 docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc spotify/docker-gc
  • kontenery, które wyszły ponad godzinę temu, są usuwane.
  • obrazy, które nie należą do żadnego innego kontenera po tym są usuwane

Obsługuje ustawienia środowiskowe

Wymuszanie usuwania obrazów, które mają wiele tagów

 FORCE_IMAGE_REMOVAL=1

Wymuszanie usuwania kontenerów

 FORCE_CONTAINER_REMOVAL=1 

Z wyłączeniem kontenerów Ostatnio opuszczonych i Obrazy Z Garbage Collection

 GRACE_PERIOD_SECONDS=86400

To ustawienie zapobiega również usuwaniu obrazów, które zostały utworzone mniej niż GRACE_PERIOD_SECONDS sekund temu.

Dry run

 DRY_RUN=1

Czyszczenie pojemników CLEAN_UP_VOLUMES=1

Reference: docker-gc

Old way to do:

Usuwanie starych, Nie działających kontenerów

 docker ps -a -q -f status=exited | xargs --no-run-if-empty docker rm
             OR 
 docker rm $(docker ps -a -q)

Usuń wszystkie powiązane obrazy z niedziałającymi kontenerami docker

 docker images -q | xargs --no-run-if-empty docker rmi

Cleanup osierocone woluminy Dockera dla Dockera w wersji 1.10.x i powyżej

 docker volume ls -qf dangling=true | xargs -r docker volume rm

Na podstawie okresu

 docker ps -a | grep "weeks ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
 docker ps -a | grep "days ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
 docker ps -a | grep "hours ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
 4
Author: f-society,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-20 10:51:15
  1. Usuń wszystkie procesy dokujące:

    docker rm $(docker ps -a -q)
    
  2. Usuń określony Pojemnik:

    $ docker ps -a (lists all old containers)
    
    $ docker rm container-Id
    
 4
Author: padakpadak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 03:08:40

Możesz użyć następującego polecenia do usunięcia zakończonych kontenerów:

docker rm $(sudo docker ps -a | grep Exit | cut -d ' ' -f 1)

Oto pełny gist do usunięcia starych obrazów z Dockera: Gist do usunięcia starych kontenerów i obrazów Dockera .

 4
Author: urodoz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 03:13:30

Podstawowe kroki, aby zatrzymać / usunąć wszystkie kontenery i obrazy

  1. Lista wszystkich kontenerów

    docker ps -aq

  2. Zatrzymaj wszystkie uruchomione kontenery

    docker stop $(docker ps -aq)

  3. Usuń wszystkie pojemniki

    docker rm $(docker ps -aq)

  4. Usuń wszystkie obrazy

    docker rmi $(docker images -q)

Uwaga: najpierw musisz zatrzymać wszystkie uruchomione kontenery, zanim je usuniesz. Również przed usunięciem obrazu, musisz zatrzymać i usunąć jego kontener (- y) zależny (- e).

 4
Author: Murali Manchadikkal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-23 17:46:58
#!/bin/bash
# docker-gc --- Remove stopped docker containers

RUNNING=$(docker ps -q)
ALL=$(docker ps -a -q)

for container in $ALL ; do
    [[ "$RUNNING" =~ "$container" ]] && continue
    echo Removing container: $(docker rm $container)
done
 3
Author: mckoss,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-25 23:53:22

Zawsze używam docker rmi $(docker ps -a -q) do usuwania wszystkich obrazów.

Możesz usunąć katalog /var/lib/docker/graph gdy docker rmi nie powiodło się.

 3
Author: sunny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 03:07:41

Można usunąć tylko zatrzymane kontenery. Zatrzymaj je wszystkie na początku

docker stop $(docker ps -a -q)

Wtedy możesz usunąć

docker rm $(docker ps -a -q)

 3
Author: Marcin Szymczak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-24 19:11:09

Spróbuj użyć tego polecenia, aby wyczyścić kontenery i zwisające obrazy.

docker system prune -f
 3
Author: Pal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-08 21:58:23

Aby usunąć wszystkie pojemniki bez płaczu:

sudo docker ps -a | grep -v CONTAINER | awk '{print $1}' | xargs --no-run-if-empty sudo docker rm -f
 2
Author: Felipe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-06 03:11:43

Dla wszystkich zainteresowanych wziąłem przykład z qkrijger i przekształciłem go w Wyczyść wszystko (Zatrzymaj i usuń wszystko)

docker stop `docker ps --no-trunc -aq` ; docker rm `docker ps --no-trunc -aq`
 2
Author: Kraig McConaghy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-09 06:13:56
docker rm --force `docker ps -qa`
 2
Author: Sivalingam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-24 20:57:55

Usuń wszystkie kontenery utworzone z określonego obrazu:

docker rm  $(docker ps -a | awk '/myimage:mytag/{print $1}')
 2
Author: estani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 03:09:41