互联网技术 / 互联网资讯 · 2024年1月25日

Docker教程:ECS私有镜像和卷管理技巧

私有 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

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册