我在努力
docker rmi c565603bc87f
错误:
来自守护进程的错误响应:冲突:无法删除c565603bc87f
(不能强制)- image有依赖的子映像
所以我不能用-f标记删除image。如何删除图像,然后所有的孩子?
Linux和docker版本:
uname -
Linux goracio-pc 4.4.0-24-generic #43-Ubuntu SMP Wed Jun 8 19:27:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
码头工人版本
客户:
版本:1.11.2
API版本:1.23
Go版本:go1.5.4
Git提交:b9f10c9
建成:2016年6月1日星期三22:00:43
OS /拱:linux / amd64
服务器:
版本:1.11.2
API版本:1.23
Go版本:go1.5.4
Git提交:b9f10c9
建成:2016年6月1日星期三22:00:43
OS /拱:linux / amd64
对我来说有用的是使用REPOSITORY:TAG组合而不是IMAGE ID。
当我试图用命令docker rmi < image ID>删除一个没有与此映像关联的容器的docker映像时,我得到了这样的消息:
$ docker rmi 3f66bec2c6bf
Error response from daemon: conflict: unable to delete 3f66bec2c6bf (cannot be forced) - image has dependent child images
当我使用命令docker rmi RPOSITORY:TAG时,我可以成功删除
$ docker rmi ubuntu:18.04v1
Untagged: ubuntu:18.04v1
假设我们有一个Dockerfile
FROM ubuntu:trusty
CMD ping localhost
我们在没有TAG或命名的情况下构建图像
docker build .
现在我们有一个成功报告“成功构建57ca5ce94d04”
如果我们看到docker图像
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 57ca5ce94d04 18 seconds ago 188MB
ubuntu trusty 8789038981bc 11 days ago 188MB
我们需要先移除
Docker rmi 57ca5ce94d04
紧随其后的是
docker rmi 8789038981bc
由该图像将被删除!
某人建议的强制迁移
docker rmi $(docker images -q) -f
扩展@Nguyen提供的答案-这个函数可以添加到你的.bashrc等,然后从命令行调用,以帮助清理任何有依赖子图像的图像错误…
您可以自己运行该函数,如果docker ps失败,那么它将使用sudo运行docker命令并提示您输入密码。
不会删除任何正在运行的容器的映像!
docker_rmi_dependants ()
{
DOCKER=docker
[ docker ps >/dev/null 2>&1 ] || DOCKER="sudo docker"
echo "Docker: ${DOCKER}"
for n in $(${DOCKER} images | awk '$2 == "<none>" {print $3}');
do
echo "ImageID: $n";
${DOCKER} inspect --format='{{.Id}} {{.Parent}}' $(${DOCKER} images --filter since=$n -q);
done;
${DOCKER} rmi $(${DOCKER} images | awk '$2 == "<none>" {print $3}')
}
我的.bashrc文件中也有这个…
docker_rm_dangling ()
{
DOCKER=docker
[ docker ps >/dev/null 2>&1 ] || DOCKER="sudo docker"
echo "Docker: ${DOCKER}"
${DOCKER} images -f dangling=true 2>&1 > /dev/null && YES=$?;
if [ $YES -eq 1 ]; then
read -t 30 -p "Press ENTER to remove, or CTRL-C to quit.";
${DOCKER} rmi $(${DOCKER} images -f dangling=true -q);
else
echo "Nothing to do... all groovy!";
fi
}
适用于:
$ docker --version
Docker version 17.05.0-ce, build 89658be