Шпаргалка по чистке мусора в Docker
Показать образы и контейнеры
# Вывести все образы (images) docker images -a # Вывести все неиспользуемые образы docker images -f dangling=true # Выведет список запущенных контейнеров, если добавить ключ -a, выведет список всех контейнеров. docker ps
Удаление образов (images)
# Для удаления используется команда docker rmi с добавлением ИД или тега, например: # с ключом --force удалит контейнер и образ docker rmi abb461727af5 # Удаление всех образов docker rmi $(docker images -a -q) # Удаление всех неиспользуемых образов docker images prune docker rmi $(docker images -f dangling=true -q) # Удаление всех неиспользуемых (не связанных с контейнерами) образов: # Если добавить к команде ключ -a, то произойдет удаление всех остановленных контейнеров и неиспользуемых образов. docker system prune # Удаление всех образов без тегов docker rmi -f $(docker images | grep "^<none>" | awk "{print $3}") # Удаление всех образов docker rmi $(docker images -a -q)
Удаление контейнеров (containers)
# Для удаления контейнера, его необходимо сначала остановить командой ниже с указанием ID или названия контейнера. docker stop CONTAINER_ID # Для удаления контейнера используется команда docker rm с добавлением ИД или названия docker rm CONTAINER_ID # Удаление контейнера и его тома (volume) docker rm -v CONTAINER_ID # Удаление всех контейнеров со статусом exited docker rm $(docker ps -a -f status=exited -q) # Удаление всех остановленных контейнеров docker container prune docker rm `docker ps -a -q` # Удаление контейнеров, остановленных более суток назад docker container prune --filter "until=24h" # Остановка и удаление всех контейнеров docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
Удаление томов (volumes)
#Вывести список всех томов с их названиями. docker volume ls # Удаление volumes по названию docker rm <volume_name> # Вывести список всех томов не связанных с контейнерами docker volume ls -f dangling=true # Удаление томов (volumes) несвязанных с контейнерами docker volume prune docker volume rm $(docker volume ls -f dangling=true -q) # Удаление неиспользуемых (dangling) томов по фильтру docker volume prune --filter "label!=keep"
Удаление сетей (networks)
# Вывести список всех сетей с их ИД и названиями. docker network ls # Для удаления используется команда с добавлением ИД или названия: docker network rm NETWORK_ID # Удалит все сети не используемые хотя бы одним контейнером. docker network prune
Удаление всех неиспользуемых объектов
docker system prune # По умолчанию для Docker 17.06.1+ тома не удаляются. Чтобы удалились и они тоже: docker system prune --volumes