docker清理脚本(Docker 清理的常用方法及问题)
docker清理脚本
Docker 清理的常用方法及问题如果你使用 docker 进行大规模开发,但是没有清理策略,那么你的磁盘马上就会被填满,当你真的必须因为产品火爆而要立即交付一些东西时,你就无法交付。
当我们在计算机中运行一个进程时,一旦这个进程完成,所有东西都会随之销毁。容器是我们现在很多人操作的基础设施。一切东西都运行在一个容器上,旨在每个容器有一个进程。当进程完成,容器就退出。但它不会自行清理。
Docker 积累的东西你需要注意这些
-
已经停止的容器
-
磁盘卷
-
镜像
-
网络
如果有足够的空间,你可能不太关心磁盘空间,但是网络也很重要。默认地,Docker 使用 bridge 网络,它的极限是 31 个网络。当达到极限时,你会看到下面这条消息:
could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
如果你是一个为每个项目创建一个网络的 docker-compose 重度用户,就会发生这种情况。你可以通过设置一个自定义 --subnet
子网来解决问题,例如:
docker network create dada --subnet 192.167.11.0/24
但无论如何,本文的重点是清理。
使用 docker 清理清理已经停止的容器
docker rm -v $(docker ps --all --quiet --filter 'status=exited')
这会找到所有处于已退出(exited)状态的容器,一行一个地输出它们的 ID,以便我们可以将它提供给其它 shell 指令。
我们使用 docker rm -v
来删除任何匿名卷(没有显式名称的卷)。
清理磁盘卷
上面的命令应该删除与该容器关联的卷。如果你手动创建卷,并要删除任何未被使用的卷:
docker volume rm $(docker volume ls --quiet --filter 'dangling=true')
清理镜像
通常删除所有 Docker 镜像是安全的。我们可以在需要的时候按需获取。通常在一个镜像被清理后,构建时间会更长,因为 docker 守护进程需要花时间再次下载镜像
docker rm --force $(docker images --quiet)
这里,我们使用了 --force
来强制删除镜像,即使一个容器正在使用那个镜像。我们可以以后再获取这个镜像。
清理网络
这很简单。我们可以删除任何网络,它会在之后按需重建。
docker network rm $(docker network ls --quiet)
如果你使用 docker-compose 启动容器,我们有一种简单的方法来清理与特定 compose 文件关联的资源。
docker-compose down --volumes --rmi all --remove-orphans
不幸的是,这个命令不会删除匿名卷,因此你必须处理这些匿名卷。
一条命令解决所有问题docker 是短暂的,我们总是可以重新获取镜像,为了开发重新创建我们的数据库,或者这只是一个持续集成系统,我们可以删除一切。
docker system prune --all --force --volumes
到此这篇关于Docker 清理的常用方法及问题的文章就介绍到这了,更多相关Docker 清理内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- centos中docker安装部署(三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题)
- docker的一些使用方法(使用Docker 安装 Jenkins的方法)
- navicat连接mysql1045解决方法(Navicat 连接服务器端中的docker数据库的方法)
- docker-compose绑定端口失效(docker-compose创建网桥,添加子网,删除网卡的实现)
- docker怎样安装mysql8(docker-compose安装db2数据库操作)
- dockerpull的镜像位置(解决docker pull镜像报错的问题)
- docker 网络映射启动失败(解决docker安装完成报:bridge-nf-call-iptables is disabled问题)
- docker无法访问宿主机ip(解决Mac下 docker 无法 ping 通宿主机的问题)
- docker node 分阶段构建(Docker安装、创建镜像、加载并运行NodeJS程序的详细过程)
- docker容器镜像内容(Docker容器从镜像恢复代码的操作步骤)
- docker如何解绑容器(如何进入、退出docker的container实现)
- docker给镜像加名称(Alpine Docker镜像字体的问题解决操作)
- docker 查看容器状态命令(Docker 使用 Supervisor 来管理进程操作)
- docker入门搭建博客(快速掌握使用Docker搭建开发环境)
- docker搭建编译开发环境(Shell脚本构建Docker 半自动化编译打包发布应用操作)
- docker怎么装mongodb(Docker 搭建集群MongoDB的实现步骤)
- 越南新娘(越南新娘骗婚套路流程)
- 菲律宾游学(菲律宾游学中介机构)
- 菲律宾美食(菲律宾美食排行榜前十名)
- 菲律宾特产(菲律宾特产最值得买回国)
- 越南特产(越南特产首饰)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
热门推荐
- pythonyield有什么用(彻底理解Python中的yield关键字)
- js日历图片(js实现简单日历效果)
- 哪些行为会让面试失败
- mysql日期用法(MySQL DATE_ADD和ADDDATE函数实现向日期添加指定时间间隔)
- jquery图片轮播代码
- dedecms的简单说明(DEDECMS5.5在国外Linux主机下无法采集的解决方法)
- 云服务器托管区别(云服务器托管需要注意哪些事项?)
- php中钩子的理解与实例教程(php中钩子hook的原理与简单应用demo示例)
- druid数据库连接池原理详解(阿里巴巴Druid,轻松实现MySQL数据库加密!)
- 为什么mysql主键要设置自增列(浅谈MySQL中的自增主键用完了怎么办)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9