Я пытаюсь удалить контейнер докера с помощью этой команды:
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
docker-container
Мехрдад Бабаки
источник
источник
Вам нужно удалить остановленный контейнер с помощью
docker rm
, а затем вы можете удалить образ, который он используетdocker rmi
.источник
Вы также можете обнаружить, что остановили контейнеры, вызывающие блокировку. Сначала удалите их, используя:
Здесь мы перечисляем процессы докеров только по идентификатору, а затем удаляем их; однако docker rm удаляет только остановленные контейнеры.
Затем вернитесь и удалите изображения, используя:
источник
Вы должны сначала удалить контейнер.
Принудительный - это последний метод.
источник
Если
docker rmi <image-id>
не сработало, попробуйте следующее:Остановить все запущенные контейнеры
Удалить все контейнеры
Удалить все изображения
источник
В дополнение к другим ответам у меня была такая же проблема с использованием Docker для Mac, но я
docker ps -a
не отображал запущенных контейнеров. Беговыеdocker images
шоу:Все эти образы используются приложением Docker, если у вас включен Kubernetes. В настройках Docker для Mac есть раздел для Kubernetes. Если вы нажмете «Показать системные контейнеры (дополнительно)», они появятся в
docker ps
.Если вы хотите удалить эти изображения, вам нужно отключить Kubernetes через приложение Docker для Mac, а затем повторить попытку.
источник
Контейнеры Docker работают поверх образов докеров, вы можете удалить образ, только если он не прикреплен ни к какому контейнеру.! Итак, вам нужно остановить контейнер и удалить контейнер, после чего вы можете удалить идентификатор изображения.
docker stop контейнер-идентификатор и docker rm контейнер-идентификатор
Затем попробуйте удалить изображение docker rmi image-id
Дополнительная информация приведена в ссылке ниже. Ура.!
https://docs.docker.com/config/pruning/
источник
Если цель состоит в том, чтобы освободить дисковое пространство, можно использовать еще один не упомянутый подход
docker system prune
. Он напечатает предупреждение, на которое следует обратить внимание:Это не приведет к удалению именованных изображений, но очистит промежуточные безымянные изображения. В зависимости от размеров используемых контейнеров это может сэкономить значительный объем дискового пространства.
источник
Если вы изменили
Dockerfile
и используете docker compose, вы можете просто перестроить свой образ, запустив егоdocker-compose
с--build
опцией!источник
Dockerfile
вас shoudn't удалить изображение себя просто использовать флаг--build
сdocker-compose
так отстроить новое изображение с изменениями