

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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`는 ID입니다 AWS 계정 .
   + `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 리포지토리의 원래 컨테이너 이미지에 대해 두 개의 아티팩트를 생성합니다.
+ SOCI 인덱스 - 지연 로딩을 활성화하는 메타데이터
+ 이미지 인덱스 매니페스트 - OCI 준수 매니페스트