当你在云上运行应用程序时,很可能你是在容器中运行它们。我们中的许多人并没有创建自己的通用应用程序容器,例如外部服务器”>,MySQL DBMS,或Traefik云本机边缘路由器。相反,我们只需从https://hub.docker.com/“target=”\u blank“rel=”noopener noreferrer nofollow“data component=”externalLink“>Docker Hub或其他常用容器图像存储库。不幸的是,对于不想为自己的图像付费的用户,Docker不是慈善机构。从11月开始,Docker已开始限制匿名和免费身份验证用户的Docker容器请求。为了解决这个问题,Amazon Web Services(AWS)已经开始开发自己的公共容器注册表
您可能会认为这太麻烦了什么都没有。我是说,一家公司到底能拉多少个集装箱图片?答案是,仅亚马逊弹性容器注册(ECR)的客户每周就下载数十亿张图片。这不是打字错误。今天的生产软件链通常包括抓取一个流行的容器映像,运行几分钟或几个小时,然后将其丢弃。如果你还需要它,你只需重复这个过程。
这对你很好,但对Docker来说就不是那么好了。正如Docker的软件工程副总裁Jean-Laurent de Morlhon所解释的:“绝大多数Docker用户以正常工作流程所期望的速度提取图像。然而,少数匿名用户的影响是巨大的。例如,Hub上大约30%的下载来自于我们的1%的匿名用户。“因此,由于带宽不是免费的,Docker限制了其免费和匿名用户。
这始于11月2日。匿名用户和免费用户现在限制为每6小时5000次Docker Hub拉动。这些拉力将在数周内逐渐减少。最终,匿名用户将被限制在每6小时100个集装箱拉,免费用户每6小时限制200个集装箱拉。所有付费Docker帐户--专业、团队和传统订阅服务器不受费率限制。对于被批准为非商业开源项目的名称空间,将不受拉取率限制。
使用Docker的付费帐户并不需要太多费用——个人专业帐户每月5美元,团队帐户上每个用户每月7美元。然而,AWS很快将提供自己的容器映像库。
这将使开发人员能够公开共享和部署容器映像。新的注册中心将允许开发人员存储、管理、共享和部署容器映像,供任何人发现和下载。开发人员将能够使用AWS来托管他们的私有和公共容器映像,从而无需离开AWS生态系统。公共图像将进行地域复制,以在全球范围内提供可靠的可用性,并提供快速下载,以便按需快速提供图像。
奇怪的是,在Docker和Amazon Web Services(AWS)宣布他们将简化部署和管理容器的过程,从而使Docker应用程序开发人员的生活更加轻松https://docs.docker.com/compose/“target=”\u blank“rel=”noopener noreferrer nofollow“data component=”externalLink“>Docker撰写,Docker Desktop,Docker Hub到亚马逊弹性容器服务(AmazonECS)和AWS Fargate上的Amazon ECS,
AWS以外的用户将能够浏览和拉取AWS容器化图像,用于自己的应用程序。开发人员将能够使用新的注册表来分发公共容器映像和相关文件,如Kubernetes头盔图表以及供任何开发人员使用的策略配置。AWS公共映像,如ECS代理、Amazon CloudWatch代理和AWS深度学习容器映像也将可用。
必须阅读:
也就是说,在AWS上共享公共图像的开发者每月将获得50GB的免费存储空间,并在之后支付象征性的费用。任何匿名获取图片的人每月都将获得500GB的免费数据带宽。不仅如此,你还需要注册一个AWS帐户。因此,AWS的容器存储库也有其自身的局限性。
不过,在从internet上提取图像时,只要使用AWS帐户进行身份验证,每月可将免费数据带宽增加到5TB。最后,在AWS中运行的工作负载在拉取公共共享的AWS图像时将从任何区域获得无限的数据带宽。
AWS用户当然不是唯一面临新Docker规则问题的用户。例如,Google云用户可能会直接遇到它,甚至没有意识到他们正走向麻烦。谷歌云CI/CD产品负责人MichaelWinser写道:“在很多情况下,您可能不知道您正在使用的谷歌云服务正在从Docker Hub提取图像。例如,如果Dockerfile有一个类似“FROM”的语句德比安:最新的'或者您的Kubernetes部署清单有一个类似“Image:postgres:最新“它直接从Docker Hub中提取图像。”
解决方案?除了更复杂的方法外,Winser建议您只需“升级到付费Docker Hub帐户”。
https://opencontainers.org/“target=”noopener noreferrer nofollow“data component=”externalLink“>开放容器倡议(OCI)指出,这个问题不仅仅是Docker改变规则。”首要的公共内容分发问题不仅限于谁应该承担公共内容的成本,而且还包括谁负责确保对于您的环境来说,内容是可访问且安全的,100%的时间。这个问题不仅局限于生产容器映像,还扩展到所有package manager内容(DEB、RPM、RubyGems、node Module等)。“
对于这个问题,OCI建议配置“一个导入内容的工作流,安全扫描基于您组织的扫描策略的内容,运行功能测试和集成测试,以确保最新版本的内容满足所有期望,然后将经过验证的内容推广到您的团队可以利用的位置。“
多年来,我们一直依靠开源公司的仁慈为我们提供免费的,我们希望的,值得信赖的程序。既然我们的自动化工作流程已经将源代码远远转移到我们的手中,那么我们必须在获取和部署Docker容器映像方面扮演更积极和负责任的角色,但是,我们现在不加考虑地依赖于关键任务程序的所有内容。
< P> < HRF= =“/文章/开源-安全基础-发射-新的证书-程序EDX/”数据OMNEURE轨道=“模块化”数据OMNEURE轨道数据=“{”模块信息”:“更多来自作者”,“pageType”:“article”}>开源安全基金会在edX上启动新的认证计划