기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Dockerfile 사양
이미지를 성공적으로 생성하려면 Dockerfile에서 지정하는 이미지가 다음 섹션의 사양과 일치해야 합니다.
이미지 실행
-
Entrypoint
- 를 사용하여 이미지에 진입점을 임베딩하는 것이 좋습니다.DockerCMD
또는Entrypoint
지침. 런타임에 컨테이너로 전달ContainerArguments
되는ContainerEntrypoint
및 를 구성할 수도 있습니다. -
EnvVariables
– Studio를 사용하면 컨테이너에 사용할 수 있는ContainerEnvironment
변수를 구성할 수 있습니다. 환경 변수는 의 환경 변수로 덮어씁니다 SageMaker. 더 나은 경험을 제공하기 위해 환경 변수는 일반적으로 플랫폼 환경에 우선 순위를SageMaker_namespaced
부여하는AWS_
것입니다.다음은 환경 변수입니다.
-
AWS_REGION
-
AWS_DEFAULT_REGION
-
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
-
SageMaker_SPACE_NAME
-
사용자 및 파일 시스템 사양
-
WorkingDirectory
- 공간의 Amazon EBS 볼륨은 경로 에 탑재됩니다/home/sagemaker-user
. 탑재 경로는 변경할 수 없습니다.WORKDIR
지침을 사용하여 이미지의 작업 디렉터리를 내의 폴더로 설정합니다/home/sagemaker-user
. -
UID
- 의 사용자 ID Docker 컨테이너. UID=1000은 지원되는 값입니다. 사용자에게 sudo 액세스 권한을 추가할 수 있습니다. 는 컨테이너에서 실행되는 프로세스가 필요한 것보다 더 많은 권한을 갖지 못하도록 다시 매핑IDs됩니다. -
GID
- 의 그룹 ID Docker 컨테이너. GID=100은 지원되는 값입니다. 사용자에게 sudo 액세스 권한을 추가할 수 있습니다. 는 컨테이너에서 실행되는 프로세스가 필요한 것보다 더 많은 권한을 갖지 못하도록 다시 매핑IDs됩니다. -
메타데이터 디렉터리 - 에서 사용하는
/opt/.sagemakerintenral
및/opt/ml
디렉터리입니다 AWS. 의 메타데이터 파일에는 와 같은 리소스에 대한 메타데이터가/opt/ml
포함되어 있습니다DomainId
.다음 명령을 사용하여 파일 시스템 내용을 표시합니다.
cat /opt/ml/metadata/resource-metadata.json {"AppType":"JupyterLab","DomainId":"
example-domain-id
","UserProfileName":"example-user-profile-name
,"ResourceArn":"arn:aws:sagemaker:AWS 리전
:111122223333
;:app/domain-ID
/user-ID
/Jupyte rLab/default","ResourceName":"default","AppImageVersion":"current"} -
로깅 디렉터리 - 의 로깅 디렉터리 JupyterLab 및 이와 연결된 확장을 위해 예약
/var/logs/studio
됩니다. 이미지를 생성할 때 폴더를 사용하지 않는 것이 좋습니다.
상태 확인 및 URL 애플리케이션
-
Base URL
– URL BYOI 애플리케이션의 기본은 여야 합니다jupyterlab/default
. 애플리케이션은 하나만 가질 수 있으며 항상 이름이 여야 합니다default
. -
HealthCheck API
– 는 포트 8888HealthCheckAPI
에서 를HostAgent
사용하여 JupyterLab 애플리케이션의 상태를 확인합니다.jupyterlab/default/api/status
는 상태 확인을 위한 엔드포인트입니다. -
Home/Default URL
- 에서 사용하는/opt/.sagemakerinternal
및/opt/ml
디렉터리입니다 AWS. 의 메타데이터 파일에는 와 같은 리소스에 대한 메타데이터가/opt/ml
포함되어 있습니다DomainId
. -
인증 - 사용자의 인증을 활성화하려면 Jupyter 노트북 토큰 또는 암호 기반 인증을 끄고 모든 오리진을 허용합니다.
다음은 샘플입니다.Amazon Linux 2 Dockerfile 위의 사양을 충족하는 :
FROM public.ecr.aws/amazonlinux/amazonlinux:2 ARG NB_USER="sagemaker-user" ARG NB_UID="1000" ARG NB_GID="100" RUN yum install --assumeyes python3 shadow-utils && \ useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \ yum clean all && \ python3 -m pip install jupyterlab RUN python3 -m pip install --upgrade pip RUN python3 -m pip install --upgrade urllib3==1.26.6 USER ${NB_UID} CMD jupyter lab --ip 0.0.0.0 --port 8888 \ --ServerApp.base_url="/jupyterlab/default" \ --ServerApp.token='' \ --ServerApp.allow_origin='*'
다음은 샘플입니다.Amazon SageMaker Distribution Dockerfile 위의 사양을 충족하는 :
FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu ARG NB_USER="sagemaker-user" ARG NB_UID=1000 ARG NB_GID=100 ENV MAMBA_USER=$NB_USER USER root RUN apt-get update RUN micromamba install sagemaker-inference --freeze-installed --yes --channel conda-forge --name base USER $MAMBA_USER ENTRYPOINT ["jupyter-lab"] CMD ["--ServerApp.ip=0.0.0.0", "--ServerApp.port=8888", "--ServerApp.allow_origin=*", "--ServerApp.token=''", "--ServerApp.base_url=/jupyterlab/default"]