Я'вэ следующие изображения:
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.
Возможная причина: Причиной может быть, что этот образ используется в настоящее время работает контейнер. В таком случае можно список запущенных контейнеров, прекращения соответствующего контейнера и удалите изображения:
docker ps
docker stop <containerid>
docker rm <containerid>
docker rmi <imageid>
Если вам не удается найти контейнер докер ПС, вы можете использовать это, чтобы перечислить все уже вышли контейнеры и удаляет их.
docker ps -a | grep 60afe4036d97
docker rm <containerid>
Примечание: будьте осторожны удаления все вышли контейнеры сразу в случае, если вы используете `объем-только контейнеры. Они находятся в "выход" государства, но содержит полезные сведения.
Причина ошибки заключается в том, что даже если изображения не было никаких тегов, по-прежнему существует контейнер, созданный на тот самый образ, который может быть в выход
государства. Так что вы должны убедиться, что вы остановились и удалил все контейнеры, созданные на этих изображениях. Следующая команда поможет вам в удалении всех контейнеров, которые не работают:
docker rm `docker ps -aq --no-trunc --filter "status=exited"`
Теперь это удаляет все болтались непромежуточном `<нет> У изображения:
docker rmi `docker images --filter 'dangling=true' -q --no-trunc`
Примечание: Для остановки всех запущенных контейнеров:
докер остановить докер ПС-м`
Изображение может быть в настоящее время работает контейнере, поэтому сначала нужно остановить и удалить контейнер(ы).
docker stop <container-name>
docker rm <container-id>
Тогда вы можете попробовать удалить изображения:
docker rmi <image-id>
Вы должны быть уверены, что это изображение не'т зависеть от других изображений (в противном случае вы должны удалить их первый).
У меня был странный случай, в котором у меня не было больше контейнеров жива (докер P. S.-А
ничего не вернул), но я не мог'т управления, чтобы удалить изображение и изображения зависимости.
Для решения этих особых случаях вы могли бы заставить снятие изображения с этого:
docker rmi -f <image-id>
Я нашел ответ в этой команде:
docker images --no-trunc | grep none | awk '{print $3}' | xargs docker rmi
У меня была ваша проблема, когда я удалил некоторые изображения, которые были использованы, и я не'т реализовать (используя докер ПС-а
).
С докер Вер. 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
Во-первых, снять все контейнеры, используя следующую команду
sudo docker ps -a -q | xargs -n 1 -I {} sudo docker rm {}
Затем удалить изображение по его идентификатору с помощью следующей команды
sudo docker rmi <image-id>
В дополнение к Солнечной'ы ответа:
Для того, чтобы *удалить все изображения** на Windows машину (с Docker для Windows) в окне PowerShell, выполните:
docker images -q | %{docker rmi -f $_}
Для того, чтобы *удалить все контейнеры** на Windows машину (с Docker для Windows) в окне PowerShell, выполните:
docker ps -a -q | %{docker rm -f $_}
Вы должны остановить/удалить все ненужные создан первый в образов контейнеров.
Взгляните: https://stackoverflow.com/questions/17236796/how-to-remove-old-docker-io-containers.
После этого используйте раствор @Марсель.
Удалить все контейнеры
docker ps -q -a | xargs docker rm
Заставить удалить все настройки изображения
docker rmi -f $(docker images -f dangling=true -q)
Просто вы можете с инвалидами - сила
в конце команды. Как:
sudo docker rmi <docker_image_id> --force
Чтобы сделать его более умный можно добавить:
sudo docker stop $(docker ps | grep <your_container_name> | awk '{print $1}')
sudo docker rm $(docker ps | grep <your_container_name> | awk '{print $1}')
sudo docker rmi $(docker images | grep <your_image_name> | awk '{print $3}') --force
Здесь, в докер ПС
$1-первый столбец, т. е. контейнеров Docker идентификатор.
И Докер изображений
3 $ - это третий столбец, т. е. Докер ID изображения.
Чтобы удалить некоторые изображения Докер, вы должны выполнить следующую команду:
$ docker rmi <docker_image_id>
Поэтому, чтобы удалить все настройки изображения вы можете выполнить следующую команду:
$ docker rmi $(docker images -q)
Теперь, если вы хотите удалить все настройки изображения (в том числе изображений, которые находятся в использования), вы можете добавить флаг -Ф
, например:
$ docker rmi -f $(docker images -q)
Использовать
docker image prune -all
или
docker image prune -a
Убрать все висячие изображений. Если -а
определяется, он будет также удалить все изображения, на которые не ссылается на какой-то контейнер.
Примечание: появится запрос на подтверждение, прежде чем подрезать ничего не удаляет, но вы не показали список того, что могут быть удалены. Кроме того, `Docker-образ LS не поддерживает негативные фильтрации, поэтому трудно предсказать, какие изображения будут на самом деле быть удалены.
Как указано в Докер's документация для слива.
Если вы хотите автоматически/периодически убирать выход из контейнеров и удалять изображения и томов, разве'т используется выполняемой контейнер вы можете скачать 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
Я нашел решение с помощью скрипта PowerShell, который будет делать это за меня.
Сценарий сначала остановить все контейнеры, чем удалить все контейнеры, а затем удалить изображения, которые назначаются пользователем.
Посмотри здесь http://www.devcode4.com/article/powershell-remove-docker-containers-and-images