docker基础之如何批量删除docker镜像和容器

导读:本篇文章讲解 docker基础之如何批量删除docker镜像和容器,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

[版权申明] 非商业目的注明出处可自由转载
出自:shusheng007

概述

废话就不多说了,容器化已经是当今后端技术的主流,而其中的领头羊docker的使用更是后端工程师必备技能。

docker基础系列是记录本人日常开发中遇到的问题和思考,以期待在提高自己的同时帮助后辈,希望他们到时候手下留情,不要把我卷死在沙滩上…

如果你在日常工作中真的在使用docker,你会发现慢慢的积累了很多无用的docker容器和镜像需要删除,一个一个删又觉得非常费时,于是你就在想如何批量删除…

单个删除

单个删除容器

  • 获取容器Id

使用如下命令列出当前所有容器信息

docker ps -a 

如果你docker中的容器太多也可以使用grep过滤,这个就是Linux的知识了,和docker无关

docker ps -a | grep  要删除的容器信息,例如nginx

-a 我觉得是all的意思,其效果就是会列出所有容器,包括正在运行以及停止的容器,如果不加-a就只列出正在运行的容器。

  • 停止容器

如果容器正在运行,那么首先要先停止它才能删除

docker stop 容器Id或名称
  • 删除容器
docker rm 容器Id或名称

单个删除镜像

  • 获取镜像Id
docker images
  • 删除镜像
docker rmi 镜像Id

批量删除

明白了单个删除,批量删除也就不在话下了,步骤和上面一样,不同点在于如何获批量获取容器的id

批量删除容器

首先,要明白批量删除容器的命令,然后问题转化为获取要删除容器的Id。

docker rm 容器1ID 容器2ID ...

删除所有容器

这个操作很危险,请谨慎执行

  • 停止所有容器
docker stop $(docker ps -a -q)

其中$()是Shell语法,表示其内容会被当命令执行,也可以使用两个` 号代替。 上面的语句还可以写成下面这样

docker stop `docker ps -a -q`

其中- q 表示返回唯一Id,这里是返回容器Id

  • 删除所有容器
docker rm $(docker ps -a -q)

删除所有符合过滤条件的容器

  • 停止所有符合条件容器
docker stop $(docker ps -a | grep 过滤条件 | awk '{print $1}')

其中awk '{print $1}' 表示获取容器Id,因为使用docker ps -a 查看容器详情后,第一列是容器Id,所以是$1

  • 删除所有符合条件容器
docker rm $(docker ps -a | grep 过滤条件 | awk '{print $1}')

批量删除镜像

批量删除镜像和批量删除容器非常类似

删除所有镜像

docker rmi $(docker images  -q)

删除所有符合条件镜像

docker rmi $(docker images | grep 过滤条件 | awk '{print $3}')

其中awk '{print $3}' 表示获取镜像Id,因为使用docker images 查看镜像详情后,第3列是镜像Id,所以是$3

总结

学海无涯,知道的越多越觉得自己啥也不会了,不知道自己还能写多久代码…

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/14664.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!