

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# nerdctl と SOCI CLI を使用して SOCI インデックスを作成する例
<a name="soci-indexing-example-create-indexes"></a>

次のページでは、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 インデックス付きイメージのタグです

1. 必要なツールをインストールします。

   ```
   # 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
   ```

1. レジストリ変数を設定します。

   ```
   REGISTRY_USER=AWS
   REGISTRY="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com"
   ```

1. リージョンをエクスポートし、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
   ```

1. 元のコンテナイメージをプルします。

   ```
   sudo nerdctl pull $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG
   ```

1. SOCI インデックスを作成します。

   ```
   sudo nerdctl image convert --soci $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

1. SOCI インデックス付きイメージをプッシュします。

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

このプロセスでは、ECR リポジトリ内の元のコンテナイメージに 2 つのアーティファクトを作成します。
+ SOCI インデックス - 遅延ロードを有効にするメタデータ
+ Image Index マニフェスト - OCI 準拠マニフェスト