docker实现资源清理方式

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

1. 查看 docker 占用资源

docker container ls #默认只列出正在运行的容器,-a 选项会列出包括停止的所有容器。 docker image l s# 列出镜像信息,-a 选项会列出 intermediate 镜像(就是其它镜像依赖的层)。 docker volume ls #列出数据卷。 docker network ls #列出 network。 docker info #显示系统级别的信息,比如容器和镜像的数量等。 du -sh /var/lib/docker/volumes/ du -sh /var/lib/docker/devicemapper du -sh /var/lib/docker/tmp

2. 清理

删除镜像

sudo docker rmi <Image Name>

删除容器

sudo docker rm <Container Name>

删除所有镜像

sudo docker rmi -a

删除所有容器

sudo docker rm -a

另外,容器的数据卷(volume)也是占用磁盘空间,可以通过以下命令删除失效的volume:

sudo docker volume rm $(docker volume ls -qf dangling=true)

或者

docker volume ls -f dangling=true | awk { print $2 } | xargs docker volume rm

当然,最暴力的方式是删除Docker存储镜像,容器与数据卷的目录(/var/lib/docker)

谨慎使用!!!:

sudo service docker stop sudo rm -rf /var/lib/docker sudo service docker start

只删除那些未被使用的资源

docker system prune

安全起见,这个命令默认不会删除那些未被任何容器引用的数据卷,如果需要同时删除这些数据卷,

你需要显式的指定 –volumns 参数。

比如你可能想要执行下面的命令:

docker system prune –all –force –volumns

<none> 镜像。

这表示旧的镜像已经不再被引用了

此时它们就变成了 dangling images

#批量清理容器 docker container prune # 删除所有退出状态的容器 #or docker ps –filter status=dead –filter status=exited -aq | xargs -r docker rm -v docker volume prune # 删除未被使用的数据卷 docker network prune #清理没有再被任何容器引用的networks docker network prune –filter “until=24h” #清理没有被引用的、创建超过24小时的networks docker image prune # 删除 dangling 或所有未被使用的镜像 docker image prune -a #清除所有没有容器引用的镜像 docker image prune -a –filter “until=24h” # 只清除超过创建时间超过24小时的镜像 docker images –no-trunc | grep <none> | awk { print $3 } | xargs -r docker rmi

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容