如何优雅地删除Docker镜像和容器(超详细)_docker删除容器和镜像

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、前言

 
  大家是怎么删除Docker中的镜像和容器的呢有没有考虑过如何优雅地删除呢?本教程详细指导如何在优雅地删除Docker容器和镜像。如需了解如何在Centos7系统里面安装Docker可以参考教程【最新Docker在Centos7下安装部署(参考官方教程文档
 
  本文由 @大白有点菜 原创请勿盗用转载请说明出处如果觉得文章还不错请点点赞加关注谢谢
 

二、优雅删除镜像(推荐做法

 

1、查看Docker要删除的镜像如目标版本为stable-perlNginx镜像ID(IMAGE IDdf1998569adb

docker images

查看Docker要删除的镜像

 

2、使用命令“docker rmi 镜像ID”删除Nginx(stable-perl的镜像只取“IMAGE ID”的前3个字符即可。

docker rmi df1

使用命令“docker rmi 镜像ID(IMAGE ID)”删除指定的镜像 
  报错内容如下意思是镜像(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

docker ps

查看Docker运行中的容器
 

4、先停止nginx:stable-perl容器(f66运行再去删除Nginx(stable-perl镜像(df1

(1停止容器(f66运行。

docker stop f66

(2删除镜像(df1。

docker rmi df1

停止容器(f66运行再去删除镜像(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所有容器的状态。

docker ps -a

(2删除 nginx:stable-perl 容器。

docker rm f66

(3再查看Docker所有容器的状态发现 nginx:stable-perl 容器(f66已经不存在了。

docker ps -a

查看Docker所有容器的状态并删除容器
 

6、删除镜像再查看所有镜像发现列表中已经不存在版本为stable-perl的Nginx镜像(df1。

docker rmi df1

删除镜像(df1
 

三、优雅删除容器(推荐做法

 

1、查看Docker中运行中的容器例如 Nginx 容器ID为 39c并删除容器。

(1查看Docker中运行中的容器。

docker ps

(2删除Nginx容器(39c

docker rm 39c

(3发现会报错报错内容如下意思是容器还在运行不能删除先停止运行再删除或直接强制删除。

Error response from daemon: You cannot remove a running container 39cdb69246fdb6b623cff60af5b59e033149b6940bc5e0432c760ea245da81a9. Stop the container before attempting removal or force remove

查看Docker中运行中的Nginx容器并删除
 

2、停止容器(39c查看所有容器的运行状态。

(1停止容器。

docker stop 39c

(2查看所有容器的运行状态(包含运行中的和已停止的。

docker ps -a

停止容器(39c查看所有容器的运行状态
 

3、删除容器(39c查看所有容器的运行状态。

(1删除容器。

docker rm 39c

(2查看所有容器的运行状态(包含运行中的和已停止的。

docker ps -a

(3容器(39c已经不存在了说明被成功删除了。
 
删除容器(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

docker rm -f container_id

容器被强制删除
 

五、总结

  优雅地删除镜像的最佳做法是先停止容器再删除容器最后删除镜像
 
  优雅地删除容器的最佳做法是先停止容器再删除容器

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Docker

“如何优雅地删除Docker镜像和容器(超详细)_docker删除容器和镜像” 的相关文章