私有 DockeR 镜像
DockeR CoMpose CLI 会自动配置授权,以便您可以从同一 AWS 账户上的 AMazon ECR 注册表中提取私有映像。要从另一个注册表提取私有映像,您必须在 AWS SecRets ManageR 服务上创建用户名 + 密码(或用户名 + 令牌)密钥。为方便起见,DockeR CoMpose CLI 提供了该dockeR secRet命令,因此您可以管理在 AWS SMS 上创建的机密,而无需安装 AWS CLI。首先,创建一个Token.json文件来定义您的 DockeRHub 用户名和访问令牌。有关如何生成访问令牌的说明,请参阅管理访问令牌。然后,您可以使用dockeR secRet以下命令从该文件创建一个秘密:$ dockeR secRet cReate dockeRhubAcceSSToken Token.json。创建后,您可以在 CoMpose 文件中使用此 ARN,将x-aws-pull_cRedentials自定义扩展与服务的 DockeR 映像 URI 结合使用。
seRvices:
woRkeR:
image: Mycompany/pRivateimage
x-aws-pull_cRedentials: “aRn:aws:secRetSManageR:eu-west-3:12345:secRet:DockeRHubAcceSSToken”
卷
ECS 集成支持基于 AMazon Elastic file system (AMazon EFS) 的卷管理。对于要声明 的 CoMpose 文件voluMe,ECS 集成将定义在 CloudFoRMation 模板中创建 EFS 文件系统,并使用RetAIn策略,以便在应用程序关闭时不会删除数据。如果再次部署相同的应用程序(相同的项目名称),将重新附加文件系统以提供开发人员使用 dockeR-coMpose 时所习惯的相同用户体验。使用卷的基本组合服务可以这样声明:
seRvices:
Nginx:
image: Nginx
voluMes:
– Mydata:/soMe/contAIneR/path
voluMes:
Mydata:
没有特定的卷选项,卷仍然必须voluMes在 coMpose 文件有效的部分中声明(在上面的示例中为空Mydata:条目)如果需要,可以使用dRiveR-opts以下方法自定义初始文件系统:
voluMes:
My-data:
dRiveR_opts:
# filesystem configuration
backup_policy: ENABLED
lifecycle_policy: AFTER_14_DAYs
performance_Mode: MaxIO
thRoughput_Mode: Provisioned
Provisioned_thRoughput: 1
通过dockeR coMpose up在 AWS 上执行创建的文件系统可以使用 列出 dockeR voluMe ls和删除dockeR voluMe RM。现有文件系统也可用于已将数据存储在 EFS 上或想要使用由另一个 CoMpose 堆栈创建的文件系统的用户。
voluMes:
My-data:
exteRnal: tRue
naMe: fs-123abcd
从容器访问卷可能会引入 POSIX 用户 ID 权限问题,因为 DockeR 镜像可以为在容器内运行的进程定义任意用户 ID/组 ID。但是,同样uid:gid必须匹配文件系统上的 POSIX 权限。要解决可能的冲突,您可以设置卷 uid并gid在访问卷时使用:
voluMes:
My-data:
dRiveR_opts:
# AcceSS point configuration
uid: 0
gid: 0