ECR(Elastic Container Registry) 公有镜像仓库是AWS reInvent 2020新发布的功能。之前ECR只支持私有仓库,现在用户能够上传公有镜像供他人下载使用。可将其理解为和docker hub一样的功能。

公有镜像仓库地址

AWS ECR公有镜像仓库地址:https://gallery.ecr.aws/,目前里面共有1000多个镜像。

image-20201212202155298


发布公有镜像

在ECR console创建一个公有仓库过程如下:

img

在创建存储库时,可同时上传仓库的logo、添加描述等:

image-20201212203604360


AboutUsage模块,支持输入markdown语法的介绍:

img

创建完成后,在界面里能够看到这个公有镜像仓库。在旁边有按钮可以查看推送指令

image-20201214212105817

推送过程也很简单:首先进行ECR登录认证,然后就是build、tag、push老三样。

image-20201214212147945

为了方便,这里我将直接将redis镜像推送上去:

image-20201214213438175


上传成功后,在ECR公共仓库里能搜索到这个镜像,现在任何人都可以下载并运行。

image-20201214213617949


拉取公有镜像

ECR public gallery里找到镜像地址,:

image-20201214213829204

此时,我在另一台电脑上执行:

docker pull public.ecr.aws/f3s7a1p8/pingfan:latest
#拉取下来镜像后,启动容器:
docker run public.ecr.aws/f3s7a1p8/pingfan:latest

image-20201214214111093

上面这个容器成功启动了redis服务。


写在最后

  • 为了高可用,ECR公有仓库的镜像存储在两个region。

  • 另外,在拉取镜像时使用了CloudFront,所以一些热门镜像的拉取速度绝对有保证。

  • ECR公有镜像可以与其他AWS服务集成。例如,当上传完公有镜像时通知CodeBuild


价格分为存储费用和流量费用两部分,详情见https://aws.amazon.com/ecr/pricing/?nc1=h_ls

  • 存储。存储小于50GB时免费,超出部分按0.1$/GB每月收费。

  • 流量费用没看太懂。超出500GB部分收费。


点评:

不收费我就不叫AWS,连公有镜像都敢收你钱。