执行docker rmi命令时出现

docker rmi iaiti/centos-nodejs1       

Error response from daemon: conflict: unable to remove repository reference \"iaiti/centos-nodejs1\" (must force) - container 01225a5e58b8 is using its referenced image 577fcd17478d

关于rmi命令 [docker rmi | Docker Documentation] (https://docs.docker.com/engine/reference/commandline/rmi/)

daemon是docker核心的后台进程,这个在进程线程的学习中也经常遇到就是守护进程
相当于通过Docker server模块接受Docker client请求,在Engine根据请求类型处理请求创建对应的job。

有容器还用着该镜像的引用。

容器和镜像之间的关系可以看这个系列的第四篇文章,通过动画长颈鹿的历程介绍的应用,docker和kubernetes之间的关系。

[What is the difference between a Docker image and a container? - Stack Overflow](https://stackoverflow.com/questions/23735149/what-is-the-difference-between-a-docker-image-and-a-container)

关于镜像和容器之间的关系,针对技术上,这里的一个问题也挺不错的。
一个镜像的实例是容器。你有镜像,它是您描述的一组图层。
你一启动这个镜像就会得到一个在运行的容器,你可以拥有很多个同个镜像的容器。

docker images 可以看到所有docker镜像
docker ps 运行的容器
docker ps -a 所有容器
 

[Docker error cannot delete docker container, conflict: unable to remove repository reference - Stack Overflow](https://stackoverflow.com/questions/33907835/docker-error-cannot-delete-docker-container-conflict-unable-to-remove-reposito)


明白了他们之间的关系,简而言之,容器就是镜像的一个运行实例。之所以不能删除镜像是
该镜像有一个运行着的容器,我们先把容器移除就好了。

docker container ls -a
docker image ls
docker container rm <container_id>
docker image rm <image_id>

如果想移除所有东西
docker system prune -a
这个命令会移除
1 所有停止的容器
2 所有网络至少有一个容器没有使用到的
3 未使用镜像
4 构建缓存

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐