View a markdown version of this page

使用 nerdctl 和 SOCI CLI 範例建立 SOCI 索引 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 nerdctl 和 SOCI CLI 範例建立 SOCI 索引

以下頁面提供如何使用 nerdctl 和 SOCI CLI 建立 SOCI 索引的範例。

建立 SOCI 索引範例
  1. 首先為後續的 AWS 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 是您的 AWS 帳戶 ID

    • REGION 是 Amazon ECR 私有登錄檔 AWS 區域 的

    • REPOSITORY_NAME 是 Amazon ECR 私有登錄檔的名稱

    • ORIGINAL_IMAGE_TAG 是原始映像的標籤

    • SOCI_IMAGE_TAG 是 SOCI 索引影像的標籤

  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. 推送 SOCI 索引影像:

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

此程序會為 ECR 儲存庫中的原始容器映像建立兩個成品:

  • SOCI 索引 - 啟用延遲載入的中繼資料

  • 影像索引資訊清單 - OCI 相容資訊清單