Как физически удалить немаркированные изображения докеров

когда я запускаю команду, такую ​​как sudo docker rmi me/myimage, я получаю ответ... изображение немаркировано, но когда я перезапускаю файлы sudo docker, я вижу, что это "непомеченное" изображение все еще существует, и, если Я запускаю df -h, я вижу, что фактические файлы все еще существуют и занимают пространство файловой системы. Какую команду или процедуру я могу использовать для физического удаления ненужных изображений?

Ответы

Ответ 1

Вы должны иметь возможность удалять немаркированные изображения Docker с помощью флага "dangling=true":

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

Источник:

https://docs.docker.com/engine/reference/commandline/images/

Ответ 2

Сначала вам нужно удалить вышедшие контейнеры, а затем удалить висящие изображения.

docker rm $(docker ps -q -f status=exited)
docker rmi $(docker images -q -f dangling=true)

В конце концов, я создал приведенный ниже скрипт как ~/bin/dclean и использую его.

#!/bin/sh

processes=$(docker ps -q -f status=exited)
if [ -n "$processes" ]; then
  docker rm $processes
fi

images=$(docker images -q -f dangling=true)
if [ -n "$images" ]; then
  docker rmi $images
fi

Ответ 3

Если решение John Petrone не работает, попробуйте удалить эти образы, явно ссылаясь на IMAGE ID, которые вы видите при запуске docker images. Вы можете удалить все из них одной командой

for i in sudo docker images | grep\| awk '{print $3}' ; do sudo docker rmi $i; done

PD: Я не знаю, как ответил Джон Петрон. Он отлично работает с Docker 1.4.1

Ответ 4

вы можете удалить отдельные изображения по их идентификатору изображения...

docker images
docker rmi <image-id>

Ответ 5

Эта команда также работает

docker rmi $(docker images | grep "^<none>" | awk '{print $3}')

Удалите изображения с силой, чтобы отказаться от остановленных контейнеров, которые могут использовать изображение

docker rmi -f $(docker images | grep "^<none>" | awk '{print $3}')

Ответ 6

Эта команда удалит все свисающие изображения и контейнеры из докера.

docker system prune -f