一、前言
大家是怎么删除Docker中的镜像和容器的呢,有没有考虑过如何优雅地删除呢?本教程详细指导如何在优雅地删除Docker容器和镜像。如需了解如何在Centos7系统里面安装Docker,可以参考教程【最新Docker在Centos7下安装部署(参考官方教程文档)】
**
本文由 @大白有点菜 原创,请勿盗用,转载请说明出处!如果觉得文章还不错,请点点赞,加关注,谢谢!
**
二、优雅删除镜像(
推荐做法
)
1、查看Docker要删除的镜像,如目标版本为
stable-perl
的
Nginx
,镜像ID(
IMAGE ID
)为
df1998569adb
。
docker images
2、使用命令“
docker rmi 镜像ID
”删除Nginx(stable-perl)的镜像,只取“
IMAGE ID
”的
前3个字符
即可。
docker rmi df1
**报错内容如下,意思是
镜像(df1)
存在使用中的
容器(f66)
,不能强制删除镜像。官方的意思是要先停止容器运行,再进行镜像的删除操作吗?**
Error response from daemon: conflict: unable to delete df1998569adb (cannot be forced) - image is being used by running container f6678f2821c7
3、查看Docker运行中的容器,如容器
nginx:stable-perl
,容器ID为
f66
。
dockerps
4、先停止
nginx:stable-perl容器(f66)
运行,再去删除
Nginx(stable-perl)镜像(df1)
。
(1)停止容器(f66)运行。
docker stop f66
(2)删除镜像(df1)。
docker rmi df1
**What?都已经停止
容器(f66)
运行了,删除
镜像(df1)
怎么还报错啊!?其实,只停止容器的正常运行还不行,还有最重要的一步没做:
删除容器
。**
Error response from daemon: conflict: unable to delete df1998569adb (must be forced) - image is being used by stopped container f6678f2821c7
5、查看Docker所有容器的状态(
包含运行中的和已停止的
),“STATUS”为“Exited(0)”代表停止运行。执行删除容器命令“
docker rm f66
”,删除 nginx:stable-perl 容器,再查看 nginx:stable-perl 容器是否还在列表中。
(1)查看Docker所有容器的状态。
dockerps-a
(2)删除 nginx:stable-perl 容器。
dockerrm f66
(3)再查看Docker所有容器的状态,发现 nginx:stable-perl
容器(f66)
已经不存在了。
dockerps-a
6、删除镜像,再查看所有镜像,发现列表中已经不存在版本为stable-perl的Nginx镜像(df1)。
docker rmi df1
三、优雅删除容器(
推荐做法
)
1、查看Docker中运行中的容器,例如
Nginx
,容器ID为
39c
,并删除容器。
(1)查看Docker中运行中的容器。
dockerps
(2)删除Nginx容器(
39c
)。
dockerrm 39c
(3)发现会报错,报错内容如下,意思是容器还在运行,不能删除,先停止运行再删除,或直接强制删除。
Error response from daemon: You cannot remove a running container 39cdb69246fdb6b623cff60af5b59e033149b6940bc5e0432c760ea245da81a9. Stop the container before attempting removal or force remove
2、停止容器(
39c
),查看所有容器的运行状态。
(1)停止容器。
docker stop 39c
(2)查看所有容器的运行状态(包含运行中的和已停止的)。
dockerps-a
3、删除容器(
39c
),查看所有容器的运行状态。
(1)删除容器。
dockerrm 39c
(2)查看所有容器的运行状态(包含运行中的和已停止的)。
dockerps-a
(3)容器(
39c
)已经不存在了,说明被成功删除了。
四、暴力删除镜像和容器(
不推荐做法
)
1、经验证,
镜像
中的
容器状态
为
已停止
或
已删除
的才能被强制删除,同时对应的容器(
d70
)也会被删除。
若容器还在运行中
,
删除镜像会报错
!
命令“docker rmi”后面加参数“-f”
。“image_id”代表镜像ID(
IMAGE ID
)。
docker rmi -f image_id
2、无论
容器
是否正在运行中或者已停止,都可被强制删除!
命令“docker rm”后面加参数“-f”
。“container_id”代表容器ID(
CONTAINER ID
)。
dockerrm-f container_id
五、总结
**优雅地
删除镜像
的最佳做法是:
先停止容器,再删除容器,最后删除镜像
。**
**优雅地
删除容器
的最佳做法是:
先停止容器,再删除容器
。**
版权归原作者 大白有点菜 所有, 如有侵权,请联系我们删除。