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

[版权申明] 非商业目的注明出处可自由转载
出自: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

总结

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

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShuSheng007

亲爱的猿猿,难道你又要白嫖?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值