11.5. 使用容器 registry
您可以使用 Podman 和 Docker 从容器注册表获取内容,并将内容推送到 Satellite 容器注册表。Satellite registry 遵循开放容器项目(OCI)规范,因此您可以使用与应用到其他 registry 相同的方法将内容推送到 Satellite。有关 OCI 的更多信息,请参阅 开放容器项目分发规格。
前提条件
-
要将内容推送到 Satellite,请确保您的 Satellite 帐户具有
edit_products
权限。 -
要从 Satellite 中拉取内容,请确保您的 Satellite 帐户具有
view_lifecycle_environments
、view_products
和view_content_views
权限,除非生命周期环境允许未经身份验证的拉取。
Capsules 上的容器 registry
在带有内容的 Capsules 上,Container Gateway Capsule 插件充当容器 registry。它缓存来自 Katello 的身份验证信息,并将传入请求代理到 Pulp。默认情况下,容器网关在带有内容的 Capsules 上可用。
将内容推送到 Satellite 容器 registry 的注意事项
- 您只能将内容推送到 Satellite 服务器本身。如果您需要在 Capsule 服务器上推送内容,请使用 Capsule 同步。
- 推送的容器 registry 名称必须包含小写字符。
- 除非在内容视图版本中发布推送的存储库,否则它们不会遵循 registry 名称模式。如需更多信息,请参阅 第 11.2 节 “管理容器名称模式”。这是为了确保用户可以从同一路径推送和拉取。
- 需要从同一路径推送和拉取用户。如果使用基于标签的 schema,请使用标签进行拉取。如果使用基于 ID 的模式,请使用 ID 拉取。
流程
登录到容器 registry:
# podman login satellite.example.com
列出容器镜像:
# podman search satellite.example.com/
拉取容器镜像:
# podman pull satellite.example.com/my-image:<optional_tag>
将容器镜像推送到 Satellite 容器 registry:
- 要指示容器镜像所属的机构、产品和存储库,请在容器 registry 名称中包含机构和产品。
您可以使用以下模式之一解决容器目的地:
$ podman push My_Container_Image_Hash satellite.example.com/My_Organization_Label/My_Product_Label/My_Repository_Name[:_My_Tag_] $ podman push My_Container_Image_Hash satellite.example.com/id/My_Organization_ID/My_Product_ID/My_Repository_Name[:_My_Tag_]
- 内容推送完成后,会在 Satellite 中创建存储库。