IBM Cloud Docs
Container Registry 入门

Container Registry 入门

IBM Cloud® Container Registry 提供了一个多租户私有镜像 注册表,您可以用它来存储 容器镜像 并与 账户中的用户共享。IBM Cloud

IBM Cloud 控制台中有简要的“快速入门”。 要了解有关如何使用 IBM Cloud 控制台的更多信息,请参阅使用 Vulnerability Advisor 管理映像安全性

不要将个人信息放入容器映像、名称空间名称、描述字段或任何映像配置数据(例如,映像名称或映像标签)中。

准备工作

安装 IBM Cloud CLI,以便可以运行 IBM Cloud ibmcloud 命令,具体请参阅 IBM Cloud CLI 使用入门

下面的说明假定你在自己的账户中,有权限进行所有操作。 如果您发现无法运行命令,而您的账户是由他人拥有和管理的,那么您可能缺乏配置和操作 Container Registry 服务的正确权限。 在这种情况下,您必须要求管理员为您提供所需的 IAM 服务访问角色权限。 如需了解更多信息,请参阅 " 为什么我无法开始使用 Container Registry?

安装 Container Registry CLI

  1. 运行以下命令安装 container-registry CLI 插件:

    ibmcloud plugin install container-registry
    

    有关安装插件的更多信息,请参阅 使用插件扩展 IBM Cloud CLI

设置名称空间

创建 命名空间 命名空间在您指定的 资源组中 创建,这样您就可以在资源组级别配置对命名空间内资源的访问。 如果未指定资源组,也不以资源组为目标,则使用默认资源组。 分配给资源组的名称空间显示在 IBM Cloud 控制台的 资源列表 页面中。

  1. 登录到 IBM Cloud。

    ibmcloud login
    

    如果拥有的是联合标识,请使用 ibmcloud login --sso 登录。 输入用户名,并在 CLI 输出中使用提供的 URL 获取一次性密码。 如果您有联合标识,那么不使用 --sso 会登录失败,使用 --sso 选项会登录成功。

    在推送图像之前,您无需登录 Container Registry,请参阅 第 5 步:将图像推送到您的命名空间

  2. 添加命名空间,创建自己的图像 存储库。 将 MY_NAMESPACE 替换为您首选的命名空间。

    名称空间在同一区域的所有 IBM Cloud 帐户中必须唯一。 名称空间必须具有 4 到 30 个字符,并且只能包含小写字母、数字、连字符 (-) 和下划线 (_)。 名称空间必须以字母或数字开头和结尾。

    ibmcloud cr namespace-add MY_NAMESPACE
    

    您可以使用以下选项之一,将命名空间置于您选择的资源组中。

    如果在创建命名空间时遇到问题,请参阅 " 为什么我不能添加命名空间?

  3. 为确保命名空间已创建,请运行 ibmcloud cr namespace-list 命令。

    ibmcloud cr namespace-list -v
    

从注册表中提取图像到本地计算机

  1. 安装 Docker 或您选择的工具,如 Podman。

    • 安装 Docker Engine CLI

      WindowsmacOS 对于 Windows® 8 或 X Yosemite 或更早版本,请安装 macOS 10.10.xDocker Desktop

      有关 IBM Cloud Container Registry 支持的 Docker 版本的更多信息,请参阅 Docker 支持

    • 安装 Podman.

  2. 将图片下载 (拉取)到本地电脑。 将 SOURCE_IMAGE 替换为图片的存储库,将 TAG 替换为要使用的图片的 标签,例如 latest。 例如,根据您使用的工具,运行以下命令之一。

    • 如果使用 Docker,请运行以下命令。

      docker pull SOURCE_IMAGE:TAG
      

      例如,其中 SOURCE_IMAGEhello-worldTAGlatest

      docker pull hello-world:latest
      

      如果您在尝试拉取 Docker 映像时遇到问题,请参阅 为什么无法推送或拉取Docker映像? 以获得帮助。 如果使用 latest 标签无法提取最新图像,请参阅“为什么使用 latest 标签无法提取最新图像?”以获取帮助。

    • 如果使用 Podman,请运行以下命令。

      podman pull SOURCE_IMAGE:TAG
      

      例如,其中 SOURCE_IMAGEhello-worldTAGlatest

      podman pull hello-world:latest
      

标记图片

要标记图像,请将 SOURCE_IMAGE 替换为版本库,将 TAG 替换为您先前提取的本地图像的标记。 将 REGION 替换为您所在 地区 的名称。 将 MY_NAMESPACE 替换为在 设置命名空间 中创建的命名空间。 将 NEW_IMAGE_REPO 替换为图像存储库的名称,将 NEW_TAG 替换为标签,从而定义要在命名空间中使用的图像存储库和标签。 例如,根据您使用的工具,运行以下命令之一。

要查找您所在区域的名称,请运行 ibmcloud cr region 命令。

  • 如果使用 Docker,请运行以下命令。

    docker tag SOURCE_IMAGE:TAG REGION.icr.io/MY_NAMESPACE/NEW_IMAGE_REPO:NEW_TAG
    

    例如,其中 SOURCE_IMAGEhello-world, TAGlatest, REGIONuk, MY_NAMESPACEnamespace1, NEW_IMAGE_REPOhw_repo, NEW_TAG1

    docker tag hello-world:latest uk.icr.io/namespace1/hw_repo:1
    
  • 如果使用 Podman,请运行以下命令。

    podman tag SOURCE_IMAGE:TAG REGION.icr.io/MY_NAMESPACE/NEW_IMAGE_REPO:NEW_TAG
    

    例如,其中 SOURCE_IMAGEhello-world, TAGlatest, REGIONuk, MY_NAMESPACEnamespace1, NEW_IMAGE_REPOhw_repo, NEW_TAG1

    podman tag hello-world:latest uk.icr.io/namespace1/hw_repo:1
    

将图像推送到命名空间

  1. 使用以下选项之一登录 IBM Cloud Container Registry。

    • 要使用 Docker 登录,请运行 ibmcloud cr login 命令将本地 Docker 守护进程登录到 IBM Cloud Container Registry。

      ibmcloud cr login --client docker
      
    • 要使用 Podman 登录,请运行 ibmcloud cr login 命令登录 IBM Cloud Container Registry。

      ibmcloud cr login --client podman
      
    • 要使用其他客户端登录,请参阅 交互式访问命名空间

    如果您在尝试登录时遇到问题,请参阅“为什么我无法登录 Container Registry?”获取帮助。

  2. 上传 (推送 )图像到您的命名空间。 将 MY_NAMESPACE 替换为在 设置命名空间 中创建的命名空间。 将 IMAGE_REPOTAG 替换为您在标记图片时选择的存储库和图片标签。 例如,根据您使用的工具,运行以下命令之一。

    • 如果使用 Docker,请运行以下命令。

      docker push REGION.icr.io/MY_NAMESPACE/IMAGE_REPO:TAG
      

      例如,其中 REGIONukMY_NAMESPACEnamespace1IMAGE_REPOhw_repoTAG1

      docker push uk.icr.io/namespace1/hw_repo:1
      

      如果您在尝试推送 Docker 图像时遇到问题,请参阅“为什么我无法推送或拉动 Docker 图像?”获取帮助。

    • 如果使用 Podman,请运行以下命令。

      podman push REGION.icr.io/MY_NAMESPACE/IMAGE_REPO:TAG
      

      例如,其中 REGIONukMY_NAMESPACEnamespace1IMAGE_REPOhw_repoTAG1

      podman push uk.icr.io/namespace1/hw_repo:1
      

验证图像是否已推送

通过运行以下命令,验证已成功推送映像。

ibmcloud cr image-list

您已在 IBM Cloud Container Registry 中设置名称空间,并将第一个映像推送到您的名称空间。

为以下内容的更改设置审计跟踪 Container Registry

通过捕捉每个活动 Container Registry 区域的活动事件,为 Container Registry 中的更改创建审计跟踪。 在 IBM Cloud Logs 的一个或多个实例中创建这些活动事件。

要设置审计跟踪,请完成以下步骤:

  1. 设置 IBM Cloud Logs,请参阅 IBM Cloud Logs 入门
  2. 设置 IBM Cloud Activity Tracker Event Routing,请参阅 IBM Cloud Activity Tracker Event Routing 入门
  3. 配置 IBM Cloud Logs 目标,请参阅 将 IBM Cloud Logs 实例配置为目标

有关日志记录的更多信息,请参阅 关于 IBM Cloud Logs日志记录的 Container Registry

有关活动事件的更多信息,请参阅 关于 IBM Cloud Activity Tracker Event RoutingContainer Registry 的活动跟踪事件

监测以下指标 Container Registry

您可以在要监控的区域创建 Monitoring 实例,并为其启用平台指标。 或者,也可以在该区域现有的 Monitoring 实例上启用平台指标。

有关设置度量指标的更多信息,请参阅 启用 Container Registry 的度量指标开始使用 Monitoring

下一步工作 Container Registry