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 Image Registry。将其启用后,才能执行 Snowpark Container Services 操作。

镜像注册表主机名

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

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

镜像仓库

注册表 是用于 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

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

语言: 中文