如何将私有ECR仓库转为公开?无需新建重推容器镜像
能否直接将私有ECR仓库转为公开?
不行,AWS ECR目前不支持直接将私有仓库切换为公开仓库,也没有对应的配置参数可以实现一键转换。
私有ECR仓库和公开ECR仓库在AWS的底层架构、权限控制模型、数据存储逻辑上是完全独立设计的,二者的类型无法直接修改。
如果不想手动逐个推送镜像,可以用批量脚本的方式减少工作量,步骤如下:
- 先在AWS控制台创建好对应的公开ECR仓库,并确保本地已配置好公开ECR的推送权限:
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws - 用脚本批量迁移所有镜像标签:
# 替换为你的私有仓库URI和公开仓库URI PRIVATE_REPO="123456789012.dkr.ecr.us-east-1.amazonaws.com/my-private-repo" PUBLIC_REPO="public.ecr.aws/my-public-repo" # 遍历私有仓库的所有镜像标签 aws ecr list-images --repository-name my-private-repo --query 'imageIds[*].imageTag' --output text | tr '\t' '\n' | while read TAG; do if [ -n "$TAG" ]; then docker pull "$PRIVATE_REPO:$TAG" docker tag "$PRIVATE_REPO:$TAG" "$PUBLIC_REPO:$TAG" docker push "$PUBLIC_REPO:$TAG" fi done
内容的提问来源于stack exchange,提问作者Tawseef Bhat
相关产品推荐
相关产品推荐

