Как я могу удалить Докер'ы изображений?

Я'вэ следующие изображения:

alex@alexvps:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>              <none>              70c0e19168cf        5 days ago          1.069 GB
<none>              <none>              c2ce80b62174        8 days ago          399.2 MB
<none>              <none>              60afe4036d97        8 days ago          325.1 MB

и когда я пытаюсь удалить одну из них, я получаю:

alex@alexvps:~$ sudo docker rmi 60afe4036d97
Error: Conflict, 60afe4036d97 wasn't deleted
2014/01/28 00:54:00 Error: failed to remove one or more images

Как я могу удалить их? Почему возникает такой конфликт?

Решение

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

docker rmi $(docker images -q)

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

docker rm $(docker ps -a -q)

Внимание: это уничтожит все ваши изображения и контейнеров. Невозможно их восстановить!

Это решение обеспечивается Techoverflow.net.

Комментарии (10)

Возможная причина: Причиной может быть, что этот образ используется в настоящее время работает контейнер. В таком случае можно список запущенных контейнеров, прекращения соответствующего контейнера и удалите изображения:

docker ps
docker stop 
docker rm 
docker rmi 

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

docker ps -a | grep 60afe4036d97
docker rm 

Примечание: будьте осторожны удаления все вышли контейнеры сразу в случае, если вы используете `объем-только контейнеры. Они находятся в "выход" государства, но содержит полезные сведения.

Комментарии (5)

Причина ошибки заключается в том, что даже если изображения не было никаких тегов, по-прежнему существует контейнер, созданный на тот самый образ, который может быть в выход государства. Так что вы должны убедиться, что вы остановились и удалил все контейнеры, созданные на этих изображениях. Следующая команда поможет вам в удалении всех контейнеров, которые не работают:

docker rm `docker ps -aq --no-trunc --filter "status=exited"`

Теперь это удаляет все болтались непромежуточном `<нет> У изображения:

docker rmi `docker images --filter 'dangling=true' -q --no-trunc`

Примечание: Для остановки всех запущенных контейнеров:

докер остановить докер ПС-м`

Комментарии (2)

Изображение может быть в настоящее время работает контейнере, поэтому сначала нужно остановить и удалить контейнер(ы).

docker stop 
docker rm 

Тогда вы можете попробовать удалить изображения:

docker rmi 

Вы должны быть уверены, что это изображение не'т зависеть от других изображений (в противном случае вы должны удалить их первый).

У меня был странный случай, в котором у меня не было больше контейнеров жива (докер P. S.-А ничего не вернул), но я не мог'т управления, чтобы удалить изображение и изображения зависимости.

Для решения этих особых случаях вы могли бы заставить снятие изображения с этого:

docker rmi -f 
Комментарии (0)

В Bash:

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

Это позволит удалить все картинки с именем "&ЛТ;не> наша". Я нашел эти изображения излишним.

Комментарии (2)

Я нашел ответ в этой команде:

docker images --no-trunc | grep none | awk '{print $3}' | xargs docker rmi

У меня была ваша проблема, когда я удалил некоторые изображения, которые были использованы, и я не'т реализовать (используя докер ПС-а).

Комментарии (0)

С докер Вер. 1.13.0 (январь 2017) там'с помощью команды системы слива:

$ docker system prune --help

Usage:  docker system prune [OPTIONS]

Remove unused data

Options:
-a, --all     Remove all unused images not just dangling ones
-f, --force   Do not prompt for confirmation
    --help    Print usage
Комментарии (0)

Во-первых, снять все контейнеры, используя следующую команду

sudo docker ps -a -q | xargs -n 1 -I {} sudo docker rm {}

Затем удалить изображение по его идентификатору с помощью следующей команды

sudo docker rmi 
Комментарии (1)

В дополнение к Солнечной'ы ответа:

Для того, чтобы *удалить все изображения** на Windows машину (с Docker для Windows) в окне PowerShell, выполните:

docker images -q | %{docker rmi -f $_}

Для того, чтобы *удалить все контейнеры** на Windows машину (с Docker для Windows) в окне PowerShell, выполните:

docker ps -a -q | %{docker rm -f $_}
Комментарии (0)

Вы должны остановить/удалить все ненужные создан первый в образов контейнеров.

Взгляните: https://stackoverflow.com/questions/17236796/how-to-remove-old-docker-io-containers.

После этого используйте раствор @Марсель.

Комментарии (0)

Удалить все контейнеры

docker ps -q -a | xargs docker rm

Заставить удалить все настройки изображения

docker rmi -f $(docker images -f dangling=true -q)
Комментарии (0)

Просто вы можете с инвалидами - сила в конце команды. Как:

sudo docker rmi  --force

Чтобы сделать его более умный можно добавить:

sudo docker stop $(docker ps | grep  | awk '{print $1}')

sudo docker rm $(docker ps | grep  | awk '{print $1}')

sudo docker rmi $(docker images | grep  | awk '{print $3}') --force

Здесь, в докер ПС $1-первый столбец, т. е. контейнеров Docker идентификатор.

И Докер изображений 3 $ - это третий столбец, т. е. Докер ID изображения.

Комментарии (0)

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

docker rmi $(docker images | grep "^" | awk '{print $"3"}')
Комментарии (0)

Чтобы удалить некоторые изображения Докер, вы должны выполнить следующую команду:

$ docker rmi 

Поэтому, чтобы удалить все настройки изображения вы можете выполнить следующую команду:

$ docker rmi $(docker images -q)

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

$ docker rmi -f $(docker images -q)
Комментарии (0)

Использовать

docker image prune -all

или

docker image prune -a

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

Примечание: появится запрос на подтверждение, прежде чем подрезать ничего не удаляет, но вы не показали список того, что могут быть удалены. Кроме того, `Docker-образ LS не поддерживает негативные фильтрации, поэтому трудно предсказать, какие изображения будут на самом деле быть удалены.

Как указано в Докер's документация для слива.

Комментарии (0)

Если вы хотите автоматически/периодически убирать выход из контейнеров и удалять изображения и томов, разве'т используется выполняемой контейнер вы можете скачать Docker-образ `талая вода/докер-толоки.

Таким образом, вы Дон'т должны пойти убирать вручную.

Просто запустите:

docker run -d -v /var/run/docker.sock:/var/run/docker.sock:rw  -v /var/lib/docker:/var/lib/docker:rw --restart=unless-stopped meltwater/docker-cleanup:latest

Он будет работать каждые 30 минут (или сколько вы установите его, используя DELAY_TIME=1800 вариант) и очистить выход из контейнеров и изображений.

Более детально: https://github.com/meltwater/docker-cleanup/blob/master/README.md

Комментарии (0)

Я нашел решение с помощью скрипта PowerShell, который будет делать это за меня.

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

Посмотри здесь http://www.devcode4.com/article/powershell-remove-docker-containers-and-images

Комментарии (0)