如果您在使用 AWS 公共仓库(Amazon ECR)将 Docker 镜像推送到存储库时遇到问题,可能是由于存储库策略不正确或认证凭证已过期导致的。下面是可能的解决方案。
1.检查存储库策略
确保您的存储库策略允许推送镜像。例如,以下为允许所有用户推送任何 Docker 镜像的策略:
{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPublicPush", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "ecr:CompleteLayerUpload", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart" ] } ] }
2.检查认证凭证
确保您使用的认证凭证尚未过期,并且具有推送镜像的权限。您可以使用以下命令获取新的认证令牌:
aws ecr get-login-password | docker login --username AWS --password-stdin
您可能需要配置 AWS CLI 来使用正确的访问密钥和区域。有关详细信息,请参见 AWS 文档。
3.检查 Docker 配置
确保您的 Docker 配置正确,例如正确设置了存储库名称和区域。您可以使用以下命令将 Docker 配置为使用 AWS ECR:
$(aws ecr get-login --no-include-email --region
完成上述步骤后,应该可以成功推送 Docker 镜像到 AWS ECR 存储库。