Docker清理none镜像和Exited容器

服务器

浏览数:211

2019-11-2

1、虚悬镜像与Exited退出状态容器

  • 1、Exited表示退出的容器,一般情况在运行容器的时候不设定 — restart=always 参数,然后操作系统关机或者重启,而Docker服务已经重启,而对应的容器并没跟着重启导致,或者说本身容器没有启动成功.
  • 2、虚悬镜像:在docker编译不成功会或者是新版本覆盖旧版本归类为虚悬镜像,生成这个个镜像既没有仓库名,也没有标签,均为一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,释放磁盘空间,可以用下面的命令删除。

2、停止所有容器

  • 通过grep管道过滤包含Exited的关键字,然后通过awk管道打印$1(shell的位置变量,以空格隔开)第一个参数处理,指定xargs参数进行停掉容器
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop

3、删除所有停止的容器

  • 通过grep管道过滤包含Exited的关键字,然后通过awk管道打印$1(shell的位置变量,以空格隔开)第一个参数处理,指定xargs参数进行删除容器
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm

4、删除所有tag标签是none的镜像

  • 通过grep管道过滤none,使用awk文本打印$3(位置变量)第三个参数,然后通过docker rmi进行删除
docker images|grep none|awk '{print $3 }'|xargs docker rmi

5、可以编辑 ~/.zshrc (或~/.bashrc) 指定指令别名

alias dnone="docker images|grep none|awk '{print $3}'|xargs docker rmi"
source ~/.zshrc

6、参考文章

作者:寅务