Snowpark Container Services:使用镜像注册表和镜像仓库

Snowpark Container Services 提供了兼容 ` OCIv2 <https://github.com/opencontainers/distribution-spec/blob/main/spec.md (https://github.com/opencontainers/distribution-spec/blob/main/spec.md)> `_ 的镜像注册表服务和存储单元调用仓库来存储镜像。

镜像注册表

镜像注册表服务提供 OCIv2 API,用于存储兼容 OCI 的容器镜像。

镜像注册表主机名

Snowflake 账户中的每个镜像注册表都有一个唯一的主机名,使得 OCI 客户端(如 Docker CLI)可以使用 REST API 调用来访问镜像注册表。镜像注册表主机名的一般语法为:

<orgname>-<acctname>.registry.snowflakecomputing.cn

在主机名中:

  • <orgname>-<acctname> 标识 Snowflake 账户。

  • registry 使得 Snowflake 可以为注册表客户提供每个账户的主机名。

    主机名始终全部小写。

备注

Snowflake 账户名称 (<acctname>) 可以带有下划线(例如 my_account),但下划线在 URL 中无效。因此,在使用注册表主机名时,需要将下划线替换为短划线。例如,将 my_account 改为 my-account

您可以通过以下方式之一,查找镜像仓库主机名的组织名称和账户名称信息:

镜像注册表身份验证

要访问 Snowflake 账户中的镜像存储库,用户必须使用其 Snowflake 凭据对镜像注册表进行身份验证。此外,访问注册表中的存储库需要相应的 权限。要获得这些权限,用户必须具有向存储库授予访问权限的角色。

您有以下选项可以使用账户中的镜像注册表对客户端进行身份验证:

  • 使用客户端提供的命令: Docker 等工具提供了使用用户名和密码通过注册表进行身份验证的命令。例如,在教程 1 中(请参阅 教程 1:构建并上传镜像),您可以使用 docker login 命令通过注册表对 Docker 进行身份验证。此方法仅在账户管理员允许用户使用用户名/密码身份验证时才可用。

  • 使用 Snowflake CLI: Snowflake CLI 支持所有形式的 Snowflake 身份验证。

    • 对于 Docker 客户端,请使用 snow spcs image-registry login 命令通过注册表对 Docker 进行身份验证。

    • 对于任何客户端(包括 Docker),Snowflake CLI 还提供了首先生成身份验证令牌并使用该令牌对客户端进行身份验证的选项。有关更多信息,请参阅 snow spcs image-registry token

镜像仓库

注册表 是用于 OCIv2 API 的一项服务,而 仓库 是您在服务中创建的存储单元。

仓库是账户中存储镜像的命名位置。这类似于 DBMS 和 DBMS 中的表之间的关系。也就是说,DBMS 相当于注册表,而表相当于仓库。

您可以在 Snowflake 账户中创建一个或多个仓库。例如,DEV、TEST 和 PROD 仓库可以在开发、测试和生产过程中存储镜像。您还可以创建具有不同权限的仓库,例如,某些仓库对于某些角色可以是只读的。

仓库一级支持访问控制;不支持单个镜像级别的访问控制。

为了将镜像上传到镜像仓库,注册表服务提供了 各种身份验证选项 和单点登录 (SSO)。

镜像仓库 URL

以下是 Snowflake 仓库 URL 的一般语法:

<registry-hostname>/<db_name>/<schema_name>/<repository_name>

例如:

myorg-myacct.registry.snowflake.com/my_db/my_schema/my_repository

要在账户中查找仓库 URL,可使用 SHOW IMAGE REPOSITORIES SQL 命令。

备注

  • Snowflake URL 对 $ 字符进行编码,这是 Snowflake 支持的标识符中唯一的非 URL 字符(请参阅 标识符要求)。不支持包含特殊字符且带有双引号的名称。

  • 手动构建仓库 URL 时,请将账户名称中的下划线 (my_acct) 替换为短划线 (my-acct)。

仓库操作

要创建和管理仓库,Snowflake 支持以下 仓库操作:

  • CREATE IMAGE REPOSITORY

  • DROP IMAGE REPOSITORY

  • SHOW IMAGE REPOSITORIES

要列出存储在 Snowflake 镜像仓库中的镜像,请使用以下命令:

有关创建仓库和上传镜像的示例,请参阅 教程通用设置

仓库权限

使用仓库时,适用以下权限模型:

  • 要在架构中创建仓库,您必须对架构具有 CREATE IMAGE REPOSITORY 权限。

  • 对于仓库管理,支持以下权限(功能):

    权限

    用途

    READ

    允许从仓库中列出并下载镜像。

    WRITE

    允许从仓库中列出并下载镜像。您也可以在仓库中推送镜像。

    OWNERSHIP

    允许从仓库中列出并下载镜像。您也可以在仓库中推送镜像。

    SERVICE READ

    允许容器服务从仓库中列出并下载镜像。这是 模型服务 的镜像构建步骤所必需的。

    SERVICE WRITE

    允许容器服务在仓库中推送镜像。这是 模型服务 的镜像构建步骤所必需的。

准则和限制

  • 当前不支持从仓库中删除镜像。您可以删除某个仓库,但此操作会移除该仓库中的所有镜像。

  • 如果您需要入站专用连接,请联系客户代表。

语言: 中文