title: 白嫖 AWS ECR 镜像源托管公开镜像
date: 2026-03-10 22:58:30
tags:
- AWS
- Docker
- ECR
AWS 提供了一个免费的公有容器注册表服务(ECR Public Gallery),可以用来托管公开镜像。相比其他私有源,这个方案完全免费且支持全球加速。
Prerequisites
- AWS 账户
- AWS CLI 安装并配置好 credentials
安装 AWS CLI
参考官方文档:
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html
配置 AWS CLI
1 | sudo aws configure |
输入 Access Key ID、Secret Access Key、默认区域等信息。
创建 ECR Public Repository
- 登录 AWS Console
- 访问 ECR Public Registry:https://ap-southeast-2.console.aws.amazon.com/ecr/public-registry/repositories?region=ap-southeast-2
- 点击 “Create repository” 创建一个新的公共仓库
- 填写仓库名称(例如
myproject/myimage) - 完成创建后,记下完整的仓库 URL 格式:
public.ecr.aws/<owner-id>/<repo-name>
Docker 登录 ECR Public Registry
1 | # 获取当前用户并切换到 root(如果需要 sudo 权限) |
参考文档:https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html
构建并推送镜像
准备 Dockerfile
确保你的项目目录中有 Dockerfile。
构建镜像
1 | # 构建镜像 |
Tag 镜像
将镜像 tag 为你创建仓库的完整 URL:
1 | # 假设你的仓库是 public.ecr.aws/abcd1234/myrepo |
推送镜像
1 | docker push public.ecr.aws/abcd1234/myrepo:latest |
拉取使用镜像
其他人可以使用以下命令拉取你的公开镜像:
1 | # 先登录(可选,只读访问不需要,登录每月2T FREE,匿名500G) |
完整命令流程示例
1 | # 1. 切换到 root(如果需要) |
注意事项
- ECR Public Registry 的镜像是公开的,任何人都可以拉取,不适合存放敏感信息
- 需要确保 AWS IAM 用户有足够的权限操作 ECR Public Registry
- 推荐的区域是
us-east-1,这是 ECR Public 的统一入口区域 - Docker 登录是一次性的,重新登录后才能继续 push