查询已有镜像

docker images -a

在这里插入图片描述

根据镜像ID删除指定镜像

根据镜像ID来删除指定镜像

docker rmi bbf6571db497

在这里插入图片描述
再次查询已经没有这个镜像
在这里插入图片描述

指定镜像已有容器

但是如果你使用这个镜像已经有了这个镜像的实例,这样直接删除是不行的

镜像是类,容器是对象

比如,我先使用这个镜像运行一个实例 xt-mysql

docker run -p 13306:3306 --name xt-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8

Docker run 命令

-p 3306:3306 容器暴露3306端口,并指定宿主机3306端口与其通信(: 之前是宿主机端口,之后是容器需暴露的端口)
-e 指定mysql 容器登录的密码
–name 为容器指定名字
-d 后台运行容器,并返回容器ID

我们可以看到xt-mysql的容器已经在运行
在这里插入图片描述
根据镜像ID删除指定镜像

docker rmi bbf6571db497

发现不能删除,镜像正在被容器ID为bbdc426a8514 的容器使用
在这里插入图片描述
就算容器没有在运行,也是不能删除这个镜像的
在这里插入图片描述

不依靠他的报警信息,我们也可以使用命令,找出指定镜像所生成的容器

docker ps -a | grep mysql:8 

在这里插入图片描述
根据容器名称或ID来删除指定容器,发现容器正在运行,需要我们先停止这个容器的运行
在这里插入图片描述

停止容器的运行

docker stop xt-mysql

然后再删除指定容器

docker rm xt-mysql

在这里插入图片描述

删除镜像的所有容器之后,删除指定镜像(镜像名或者镜像ID都可以)

docker rmi mysql:8

在这里插入图片描述

总结:

删除镜像的命令: i是镜像image的缩写

docker rmi      

删除容器的命令:

docker rm 

如果镜像没有容器,可以直接根据ID或者名称删除
如果镜像有容器,需要删除所有这个镜像的容器(如果他们正在运行,需要停止他们的运行再删除)

Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐