免费午餐时代的结束 - Docker Hub 新的服务条款
在云原生技术中,容器化是很重要的一环,其中免不了的是容器镜像的共享,这就必须要用到容器注册表。目前最流行的容器注册表是Docker Hub。Docker Hub上保存了1亿五千万个容器镜像,占据了15PB的存储空间。一直以来,Docker Hub为社区提供了免费的无限制的容器镜像服务,极大地促进了容器化技术的流行。但是这种免费的模式将从11月1号起发生变化。
Docker Hub 将对免费用户创建的镜像做出两个很大的限制:
第一个限制是免费用户创建的镜像,如果在6个月之内没有任何活动,将会被自动删除。根据 Docker Hub 的统计,在 15PB 的容器镜像中,有超过 10PB 的镜像,没有被访问的时间超过6个月,这其中又有 4.5PB 的镜像是免费用户创建的。节省开支是 Docker Hub 的目的。
第二个限制是拉取容器镜像的次数限制。
- 匿名用户在 6 个小时之内,只能进行 100 次拉取。
- 免费的注册用户在 6 个小时之内,只能进行 200 次拉取。
- 收费用户则没有限制。
这里的拉取操作,指的是对镜像清单的请求,与镜像的层的数量无关。在每次执行 docker pull
命令时,可能会发出一次或者两次清单请求。
Docker Hub 新的服务条款实施之后,对于大部分免费用户来说,会产生很大的困扰,不能再随意地创建和拉取镜像。
一种解决办法是进行付费,目前的收费标准是 5 美元一个月的个人付费计划。
另外一种解决办法是切换其他的容器镜像注册表。通常来说,云平台会提供自己的容器注册表,比如 AWS 上的 Elastic Container Registry (ECR),或是 Google 云平台提供的容器注册表。如果你已经使用了云平台服务,那么可以直接使用该云平台自带的容器注册表。除了 Docker Hub 之外,另外一个比较流行的免费容器注册表是Red Hat支持的Quay.io。在 Docker Hub做了这样的改动之后,不排除 Quay.io 也会采取相似的限制。
在企业内部,还可以搭建自己私有的容器注册表。注册表本身是一个开源程序,可以直接运行,或是通过容器来运行。