docker基础之如何批量删除docker镜像和容器
[版权申明] 非商业目的注明出处可自由转载出自:shusheng007文章目录概述单个删除单个删除容器单个删除镜像批量删除批量删除容器删除所有容器删除所有符合条件的容器批量删除镜像删除所有镜像删除所有符合条件镜像总结概述废话就不多说了,容器化已经是当今后端技术的主流,而其中的领头羊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
总结
学海无涯,知道的越多越觉得自己啥也不会了,不知道自己还能写多久代码…
更多推荐
所有评论(0)