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

总结

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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐