

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

# 사용자 지정 이미지를 생성하고 Amazon ECR로 푸시
<a name="studio-updated-byoi-how-to-prepare-image"></a>

이 페이지에서는 로컬 Dockerfile을 생성하고, 컨테이너 이미지를 구축하고, 이미지를 Amazon Elastic Container Registry(Amazon ECR)에 추가하는 방법에 대한 지침을 제공합니다.

**참고**  
다음 예시에서는 태그가 지정되지 않고 `latest` 태그가 기본적으로 적용됩니다. 태그를 지정하려면 이미지 이름 끝에 `:{{tag}}`를 추가해야 합니다. 자세한 내용은 *Docker 설명서*의 [docker image tag](https://docs.docker.com/reference/cli/docker/image/tag/)를 참조하세요.

**Topics**
+ [Dockerfile 생성 및 컨테이너 이미지 구축](#studio-updated-byoi-how-to-create-local-dockerfile)
+ [Amazon ECR에 Docker 이미지 추가](#studio-updated-byoi-add-container-image)

## Dockerfile 생성 및 컨테이너 이미지 구축
<a name="studio-updated-byoi-how-to-create-local-dockerfile"></a>

다음 지침에 따라 원하는 소프트웨어 및 종속성을 사용하여 Dockerfile을 생성합니다.

**Dockerfile을 생성하는 방법**

1. 먼저 다음 AWS CLI 명령에 대한 변수를 설정합니다.

   ```
   LOCAL_IMAGE_NAME={{local-image-name}}
   ```

   `{{local-image-name}}`은 로컬 디바이스에 있는 컨테이너 이미지의 이름으로, 여기서 정의합니다.

1. [사용자 지정 이미지 사양](studio-updated-byoi-specs.md)의 사양을 충족하는 `Dockerfile`이라는 텍스트 기반 문서를 생성합니다.

   지원되는 애플리케이션의 `Dockerfile` 예시는 [Dockerfile 샘플](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates)에서 확인할 수 있습니다.
**참고**  
자체 이미지를 SageMaker Unified Studio에 가져오는 경우 *Amazon SageMaker Unified Studio 사용 설명서*의 [Dockerfile specifications](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)을 따라야 합니다.  
SageMaker Unified Studio의 `Dockerfile` 예시는 *Amazon SageMaker Unified Studio 사용 설명서*의 [Dockerfile example](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)에서 확인할 수 있습니다.

1. `Dockerfile`이 있는 디렉터리에서 다음 명령을 사용하여 Docker 이미지를 구축합니다. 마침표(`.`)는 `Dockerfile`이 구축 명령의 컨텍스트에 있어야 함을 지정합니다.

   ```
   docker build -t ${LOCAL_IMAGE_NAME} .
   ```

   구축이 완료되면 다음 명령을 사용하여 컨테이너 이미지 정보를 나열할 수 있습니다.

   ```
   docker images
   ```

1. (선택 사항) 다음 명령을 사용하여 이미지를 테스트할 수 있습니다.

   ```
   docker run -it ${LOCAL_IMAGE_NAME}
   ```

   출력에서 서버가 `http://127.0.0.1:8888/...`과 같은 URL에서 실행되고 있음을 확인할 수 있습니다. URL을 브라우저에 복사하여 이미지를 테스트할 수 있습니다.

   이렇게 해서 테스트되지 않으면 docker run 명령에 `-p {{port}}:{{port}}`를 포함해야 할 수 있습니다. 이 옵션은 컨테이너에 있는 노출된 포트를 호스트 시스템에 있는 포트에 매핑합니다. docker run에 대한 자세한 내용은 *Docker 설명서*의 [Running containers](https://docs.docker.com/engine/containers/run/)를 참조하세요.

   서버가 작동하는지 확인한 후 계속하기 전에 서버를 중지하고 모든 커널을 종료할 수 있습니다. 지침은 출력에서 볼 수 있습니다.

## Amazon ECR에 Docker 이미지 추가
<a name="studio-updated-byoi-add-container-image"></a>

Amazon ECR에 컨테이너 이미지를 추가하려면 다음을 수행해야 합니다.
+ Amazon ECR 리포지토리를 생성합니다.
+ 기본 레지스트리에 로그인합니다.
+ Amazon ECR 리포지토리에 이미지를 푸시합니다.

**참고**  
Amazon ECR 리포지토리는 이미지를 연결하는 도메인 AWS 리전 과 동일한에 있어야 합니다.

**컨테이너 이미지를 구축하고 Amazon ECR에 추가하는 방법**

1. 먼저 다음 AWS CLI 명령에 대한 변수를 설정합니다.

   ```
   ACCOUNT_ID={{account-id}}
   REGION={{aws-region}}
   ECR_REPO_NAME={{ecr-repository-name}}
   ```
   + `{{account-id}}`는 계정 ID입니다. 콘솔 AWS 페이지의 오른쪽 상단에서 찾을 수 있습니다. 예를 들어, [SageMaker AI 콘솔](https://console.aws.amazon.com/sagemaker)을 확인하세요.
   + `{{aws-region}}`는 Amazon SageMaker AI 도메인 AWS 리전 의 입니다. 콘솔 AWS 페이지의 오른쪽 상단에서 찾을 수 있습니다.
   + `{{ecr-repository-name}}`은 여기에서 정의하는 Amazon Elastic Container Registry 리포지토리의 이름입니다. Amazon ECR 리포지토리를 보려면 [Amazon ECR 콘솔](https://console.aws.amazon.com/ecr)을 참조하세요.

1. Amazon ECR에 로그인하고 Docker에 로그인합니다.

   ```
   aws ecr get-login-password \
       --region ${REGION} | \
       docker login \
       --username AWS \
       --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com
   ```

   인증에 성공하면 로그인 성공 메시지가 표시됩니다.
**중요**  
오류가 발생하면 최신 버전의 AWS CLI를 설치하거나 최신 버전으로 업그레이드해야 할 수 있습니다. 자세한 내용은 *AWS Command Line Interface 사용자 가이드*에서 [AWS Command Line Interface설치](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. Amazon ECR과 호환되는 형식으로 이미지에 태그를 지정하여 리포지토리로 푸시합니다.

   ```
   docker tag \
       ${LOCAL_IMAGE_NAME} \
       ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

1.  AWS CLI을 사용하여 Amazon ECR 리포지토리를 생성합니다. Amazon ECR 콘솔을 사용하여 리포지토리를 생성하려면 [Creating an Amazon ECR private repository to store images](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html)를 참조하세요.

   ```
   aws ecr create-repository \
       --region ${REGION} \
       --repository-name ${ECR_REPO_NAME}
   ```

1. 이미지를 Amazon ECR 리포지토리에 푸시합니다. Docker 이미지에 태그를 지정할 수도 있습니다.

   ```
   docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

이미지가 Amazon ECR 리포지토리에 성공적으로 추가되면 [Amazon ECR 콘솔](https://console.aws.amazon.com/ecr)에서 이미지를 볼 수 있습니다.