您可能已经听到了有关最新的Docker声明,其中涉及容器镜像提取的速率限制。从11月1日开始,Docker将开始根据您的订阅级别限制Docker Hub的使用,并强制阻止超出限制的拉取请求。不仅如此,Docker还制定了一项新的保留政策,即免费帐户,6个月未活动的镜像将被删除(最初定于11月1日,由于社区的反馈,该政策已推迟到2021年中期)。这些新的限制将对如何使用世界公开的Docker容器镜像产生重大影响。
Docker已树立了开源计划的榜样,为开源社区提供了更高级别的部署工具和方法论。毫无疑问。新的限制不会对单个开发人员造成严重影响,相反,它们将为中大型开发团队带来新的挑战。您的团队越大,产生的影响越大。这可能仅仅是开始;我们可能希望将来会看到新政策,这些政策会影响Docker Hub以及其他方面的使用。
好消息是,有许多工具可用于管理Docker镜像,以确保组织的开发流水线不会受到任何影响。JFrog Artifactory是最受欢迎制品库,在Docker Hub功能发布之前就已经充当了Docker Registry。使用Artifactory,您将能够继续在自己的私有Docker容器Hub中管理容器镜像,同时减少对Docker Hub的依赖性。
下面让我们深入探讨Docker宣布的这两个限制的真正含义。
Docker的新镜像保留策略
到目前为止,Docker镜像可以无限期地存储在Docker Hub中。因此,开发人员无需过多地关注该存储空间的大小。现在,根据新的Docker订阅计划定义一个新的镜像保留策略,该策略将于2021年中期生效。例如,闲置6个月后,免费帐户拥有的镜像将被删除。
Docker的新下载限制
Docker将从11月1日开始为免费帐户设置新的数据传输限制,匿名用户100次拉取,身份验证/免费用户200次拉取,每个IP地址或唯一用户每6小时一次。每6小时200次拉取的简单计算将为您提供每分钟约0.55次拉取。这可能对您来说还不够,达到限制将意味着您被困在等待下一个6个小时的时间范围内。此外,即使不下载镜像,也将计算已存在的镜像。对于公司网络上IP范围较小的企业(有时归因于公司VPN),此限制对用户的挑战性是最大的。
在Artifactory中存储和保护您的Docker镜像
使用Artifactory作为DockerHub,您可以无限制地存储Docker镜像,而不必担心镜像过期和删除。使用Artifactory,您可以根据最适合您的团队的方式缓存镜像并管理Hub和保留策略(作为最佳实践,旨在仅持续维护和存储所需的镜像-这将优化DockerHub最高下载速率限制)。使用Artifactory,您也不必担心存储爆炸。使用基于校验和的存储,Artifactory可以充分利用您的存储的能力。
减少对Docker Hub的拉取次数
还将Artifactory用作代理Docker Hub的远程存储库,您可以减少对Docker Hub发出的拉取请求的数量。Artifactory一次从Docker Hub请求您所需的镜像,并使用Artifactory将这些镜像提供给您的所有内部团队使用,而无需返回Docker Hub。Artifactory允许您使用Docker帐户向Docker Hub进行身份验证,因此将根据您的帐户类型对每个请求进行身份验证和计数。
此外,在使用Artifactory 7.10及更高版本并使用代理远程存储库时,来自Docker Hub的拉取机制现在可以有效地使用新查询来更好地利用内部缓存。这意味着Artifactory在发送新的GET请求(Docker认为是拉取,不计您的新限制)之前,将发送HEAD请求以比较清单文件,并仅在需要时更新缓存的清单。Artifactory将从Docker拉取一次镜像,并在整个组织中使镜像可用,以避免您的提取限制。您始终可以控制缓存节奏,以减少对DockerHub的调用。
超越DockerHub:保护和分发Docker镜像
您可以放心地知道自己的镜像将始终可用,并且不会受到Docker约束的限制或阻碍,那么您就可以准备解决容器的其余生命周期的问题了。
公司对Docker镜像最关注的问题之一是“俄罗斯套娃”的问题,即容器中的多个容器由标准工具看不见的复杂layer层组成。值得庆幸的是,借助JFrog Xray对Artifactory中存储的容器进行的深入递归扫描,可以暴露出所有layer并识别漏洞,然后再进行生产。除了Docker之外,对于大多数常见的软件包类型,此安全扫描功能都可以立即使用。
JFrog平台还包括多种工具,可安全,快速地将软件分发到edge。借助p2p下载功能,JFrog可帮助您处理将容器镜像的突发下载(通常为数GB)到数百个节点和群集。这样既减少了等待时间,又减少了单个存储库上的压力。JFrog Distribution产品还使您可以保护包含容器的发行包,并将其交付到边缘并验证软件更新。
JFrog平台的位置独特,可以补救Docker产品可能进一步更改的风险,并为您提供Docker Registry功能以外的工具来管理容器发布的整个生命周期。![12345678.png](https://static.studygolang.com/201030/15991ab0a39131c4682d06e93d4a601d.png)![12345678.png](https://static.studygolang.com/201030/15991ab0a39131c4682d06e93d4a601d.png)
有疑问加站长微信联系(非本文作者)