Я пытаюсь удалить контейнер докера с помощью этой команды:
docker rmi <Image-Id>
Очевидно, я заменил Image-Id на Id, который использую:
docker images
Но я вижу ошибку ниже:
Error response from daemon: conflict: unable to delete <Image-ID> (must be forced) - image is being used by stopped container xxxxxxxxxxx


Вам нужно удалить остановленный контейнер с помощью docker rm, а затем вы можете удалить образ, который он использует с docker rmi.
Также можно использовать --force , -f Принудительное удаление образа
If you use the -f flag and specify the image’s short or long ID, then this command untags and removes all images that match the specified ID.
docker rmi -f <image_id>
Примечание: эта команда удаляет изображения, используемые контейнерами.
Спасибо, все сработало, но есть проблема. Я удалил образ размером 10 ГБ, но после его удаления я не вижу никаких изменений в свободном пространстве на диске.
вы удаляли тома, прикрепленные с изображением, и проверяли ли вы размер изображения каждого
Не совсем, я новичок в докере. Я попробую этот инструмент. Кстати, могу ли я использовать командную строку для определения громкости и их удаления?
да docker volume ls; для перечисления тома и удаления, docker volume rm v_id
Если вы изменили Dockerfile и используете docker compose, вы можете просто перестроить свой образ, запустив docker-compose с опцией --build!
Если вы внесли какие-либо изменения в Dockerfile, вам не следует удалять образ самостоятельно, просто используйте флаг --build с docker-compose, чтобы он перестроил новый образ с изменениями.
Вы также можете обнаружить, что остановили контейнеры, вызывающие блокировку. Сначала удалите их, используя:
docker rm $(docker ps -q -a)
Здесь мы перечисляем процессы докеров только по идентификатору, а затем удаляем их; однако docker rm удаляет только остановленные контейнеры.
Затем вернитесь и удалите изображения, используя:
docker image rm <image_id>
Контейнеры Docker запускаются поверх образов докеров, вы можете удалить образ, только если он не прикреплен к какому-либо контейнеру.! Итак, вам нужно остановить контейнер и удалить контейнер, после чего вы можете удалить идентификатор изображения.
docker stop container-id и docker rm идентификатор контейнера
Затем попробуйте удалить изображение docker rmi image-id
Дополнительная информация приведена в ссылке ниже. Ваше здоровье.!
https://docs.docker.com/config/pruning/
Это должен быть правильный ответ после процесса остановки контейнера (docker-compose stop) -> удалить контейнер (docker rm <имя контейнера>) -> удалить связанные изображения (docker rmi <image_id>).
Вы должны сначала удалить контейнер.
Принудительный - это последний метод.
#check container
docker ps -a
#remove container
docker rm containerID
Ясно лучший ответ. Единственный, кто объясняет, как получить список остановленных контейнеров.
В дополнение к другим ответам у меня была такая же проблема с использованием Docker для Mac, но docker ps -a не показывал никаких запущенных контейнеров. Запуск docker images показывает:
docker/desktop-storage-provisioner v1.0 605a0f683b7b 2 months ago 33.1MB
k8s.gcr.io/kube-controller-manager v1.15.5 1399a72fa1a9 6 months ago 159MB
k8s.gcr.io/kube-proxy v1.15.5 cbd7f21fec99 6 months ago 82.4MB
k8s.gcr.io/kube-apiserver v1.15.5 e534b1952a0d 6 months ago 207MB
k8s.gcr.io/kube-scheduler v1.15.5 fab2dded59dd 6 months ago 81.1MB
docker/kube-compose-controller v0.4.23 a8c3d87a58e7 11 months ago 35.3MB
docker/kube-compose-api-server v0.4.23 f3591b2cb223 11 months ago 49.9MB
k8s.gcr.io/coredns 1.3.1 eb516548c180 16 months ago 40.3MB
k8s.gcr.io/etcd 3.3.10 2c4adeb21b4f 17 months ago 258MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 2 years ago 742kB
Все эти образы используются приложением Docker, если у вас включен Kubernetes. В настройках Docker для Mac есть раздел для Kubernetes. Если вы нажмете «Показать системные контейнеры (дополнительно)», они появятся в docker ps.
Если вы хотите удалить эти изображения, вам нужно отключить Kubernetes через приложение Docker для Mac, а затем повторить попытку.
Если docker rmi <image-id> не сработал, попробуйте следующее:
Остановить все запущенные контейнеры
docker stop $(docker ps -aq)
Удалить все контейнеры
docker rm $(docker ps -aq)
Удалить все изображения
docker rmi $(docker images -q)
Если цель состоит в том, чтобы освободить место на диске, можно использовать еще один не упомянутый подход - использовать docker system prune. Он напечатает предупреждение, на которое следует обратить внимание:
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
Это не приведет к удалению именованных изображений, но очистит промежуточные безымянные изображения. В зависимости от размеров используемых контейнеров это может сэкономить значительный объем дискового пространства.
Это часть любого полного ответа. Вы можете принудительно удалить или удалить остановленное изображение.