如何解决如何将S3 docker store用于ECS?
我们正在使用S3存储桶作为Docker注册表。如果要在实例或内部服务器中使用它,请设置注册表然后使用它。现在,我们将移至ECS。我们如何将S3码头商店与ECS集成在一起?
还有一个问题,认为这与上下文无关。 我们使用公共S3存储桶作为注册表,并使用以下docker命令
docker run -d -p 5000:5000 -e REGISTRY_STORAGE_S3_ACCESSKEY=###aws-access-key### -e REGISTRY_STORAGE_S3_SECRETKEY=###aws-secret-key### -e REGISTRY_STORAGE=s3 -e REGISTRY_STORAGE_S3_REGION=us-east-1 -e REGISTRY_STORAGE_S3_BUCKET=bucket-name -e REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=inmemory --name registry registry:2
但是,如果我们按以下方式使用它而不使用访问密钥和秘密密钥,尽管它是一个公共存储桶,但我想知道为什么它不起作用
docker run -d -p 5000:5000 -e REGISTRY_STORAGE=s3 -e REGISTRY_STORAGE_S3_REGION=us-east-1 -e REGISTRY_STORAGE_S3_BUCKET=bucket-name -e REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=inmemory --name registry registry:2
这是我的s3存储桶策略。
{
"Version": "2012-10-17","Statement": [
{
"Effect": "Allow","Principal": {
"AWS": "*"
},"Action": [
"s3:ListBucket","s3:GetBucketLocation","s3:ListBucketMultipartUploads"
],"Resource": "arn:aws:s3:::bucket-name"
},{
"Effect": "Allow","Action": [
"s3:PutObject","s3:GetObject","s3:DeleteObject","s3:ListMultipartUploadParts","s3:AbortMultipartUpload"
],"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
解决方法
您是否考虑过迁移到AWS ECR? 这比使用S3作为Docker注册表要简单得多,您还可以应用生命周期规则等。
无论如何,将S3用作ECS注册表都应与从其他来源使用。您只需要确保您的实例可以访问它即可(例如,创建VPC Endpoint)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。