使用 nerdctl 和 SOCI CLI 示例创建 SOCI 索引 - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 nerdctl 和 SOCI CLI 示例创建 SOCI 索引

以下页面提供了有关如何使用 nerdctl 和 SOCI CLI 创建 SOCI 索引的示例。

创建 SOCI 索引示例
  1. 首先为接下来的 Amazon CLI 命令设置变量。以下是设置变量的示例。

    ACCOUNT_ID="111122223333" REGION="us-east-1" REPOSITORY_NAME="repository-name" ORIGINAL_IMAGE_TAG="original-image-tag" SOCI_IMAGE_TAG="soci-indexed-image-tag"

    变量定义:

    • ACCOUNT_ID是你的 Amazon Web Services 账户 身份证

    • REGION是您的 Amazon Web Services 区域 Amazon ECR 私有注册表

    • REPOSITORY_NAME是您的 Amazon ECR 私有注册表的名称

    • ORIGINAL_IMAGE_TAG是你原始图片的标签

    • SOCI_IMAGE_TAG是你的社交索引图片的标签

  2. 安装必需的工具:

    # Install SOCI CLI, containerd, and nerdctl sudo yum install soci-snapshotter sudo yum install containerd jq sudo systemctl start soci-snapshotter sudo systemctl restart containerd sudo yum install nerdctl
  3. 设置您的注册表变量:

    REGISTRY_USER=AWS REGISTRY="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com"
  4. 导出您的地区并向 Amazon ECR 进行身份验证:

    export AWS_REGION=$REGION REGISTRY_PASSWORD=$(/usr/local/bin/aws ecr get-login-password --region $AWS_REGION) echo $REGISTRY_PASSWORD | sudo nerdctl login -u $REGISTRY_USER --password-stdin $REGISTRY
  5. 提取您的原始容器镜像:

    sudo nerdctl pull $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG
  6. 创建 SOCI 索引:

    sudo nerdctl image convert --soci $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
  7. 推送社交索引图片:

    sudo nerdctl push --platform linux/amd64 $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG

此过程会为您的 ECR 存储库中的原始容器映像创建两个构件:

  • SOCI 索引-支持延迟加载的元数据

  • 图片索引清单-符合 OCI 的清单