本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 nerdctl 和 SOCI CLI 範例建立 SOCI 索引
以下頁面提供如何使用 nerdctl 和 SOCI CLI 建立 SOCI 索引的範例。
建立 SOCI 索引範例
-
首先為後續的 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 索引影像的標籤
-
-
安裝必要的工具:
# 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 -
設定您的登錄變數:
REGISTRY_USER=AWS REGISTRY="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com" -
匯出您的區域並驗證 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 -
提取原始容器映像:
sudo nerdctl pull $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG -
建立 SOCI 索引:
sudo nerdctl image convert --soci $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG -
推送 SOCI 索引影像:
sudo nerdctl push --platform linux/amd64 $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
此程序會為 ECR 儲存庫中的原始容器映像建立兩個成品:
-
SOCI 索引 - 啟用延遲載入的中繼資料
-
影像索引資訊清單 - OCI 相容資訊清單