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 缓存镜像更加便捷。
  • 仓库设置(例如标签可变性、推送时扫描、加密)可以通过仓库创建模板全局控制。如果未定义模板,则使用默认设置。
Back to Blog

相关文章

阅读更多 »

Jenkins 在 AWS + Docker

Jenkins 在 AWS + Docker 的封面图片 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-upload...