ECR 可以在镜像推送时自动创建
发布: (2025年12月22日 GMT+8 05:51)
2 min read
原文: Dev.to
Source: Dev.to
概览
Amazon Elastic Container Registry(ECR)可以在您推送目标为不存在的仓库的镜像时自动创建该仓库。此功能通过消除预先创建仓库的需求,简化了工作流。
前置条件
- 拥有可向 ECR 推送镜像的 AWS 账户权限。
- 已安装并配置好 AWS CLI。
- 已安装 Docker(或 Docker Buildx)。
步骤
1. (可选)创建仓库创建模板
如果您想强制使用命名前缀或设置默认仓库配置(例如镜像标签可变性),可以在 ECR 控制台或通过 AWS CLI 创建 Repository Create template。该模板还可以指定镜像标签是可变的还是不可变的。
2. 构建 Docker 镜像
docker buildx build -t test-auto-create --platform=linux/amd64 .
3. 将 Docker 认证到 ECR
aws ecr get-login-password --region us-west-2 |
docker login --username AWS --password-stdin xxxxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com
4. 为目标仓库标记镜像
docker tag 3413614e55cd xxxxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/test-auto-create:latest
5. 推送镜像
docker push xxxxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/test-auto-create:latest
推送完成后,ECR 会自动创建 test-auto-create 仓库。
验证
在推送前后运行以下命令,以查看仓库是否出现:
aws ecr describe-repositories --registry-id xxxxxxxxxxxx
推送后的示例输出:
{
"repositoryArn": "arn:aws:ecr:us-west-2:xxxxxxxxxxxx:repository/test-auto-create",
"registryId": "xxxxxxxxxxxx",
"repositoryName": "test-auto-create",
"repositoryUri": "xxxxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/test-auto-create",
"createdAt": "2025-12-21T12:39:57.362000+09:00",
"imageTagMutability": "IMMUTABLE",
"imageScanningConfiguration": {
"scanOnPush": false
},
"encryptionConfiguration": {
"encryptionType": "AES256"
}
}
附加说明
- 自动创建同样适用于 pull‑through cache 仓库,使从 ECR Public 或 Docker Hub 缓存镜像更加便捷。
- 仓库设置(例如标签可变性、推送时扫描、加密)可以通过仓库创建模板全局控制。如果未定义模板,则使用默认设置。