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
。
您可以通过以下方式之一,查找镜像仓库主机名的组织名称和账户名称信息:
Snowsight Web 界面:使用账户选择器。有关更多信息,请参阅 Snowsight 入门。
执行 SHOW IMAGE REPOSITORIES 命令。
镜像仓库¶
注册表 是用于 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
允许从仓库中列出并下载镜像。您也可以在仓库中推送镜像。