本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
提供使用者對自訂映像的存取權
本文件提供 step-by-step相關指示,讓您的使用者能夠存取其 JupyterLab 環境中的自訂映像。您可以使用此頁面上的資訊,為使用者的工作流程建立自訂環境。此程序涉及使用:
-
Docker
-
AWS Command Line Interface
-
Amazon Elastic Container Registry
-
Amazon SageMaker AWS Management Console
遵循此頁面上的指引後,Amazon SageMaker 網域上的 JupyterLab 使用者將能夠從 Jupyter 空間存取自訂映像和環境,以授權其機器學習工作流程。
重要
此頁面假設您擁有 AWS Command Line Interface 和 Docker 安裝在您的本機機器上。
若要讓您的使用者在 內成功執行其映像 JupyterLab,您必須執行下列動作:
若要讓您的使用者成功執行映像
-
建立 Dockerfile
-
從 Dockerfile 建置映像
-
將映像上傳至 Amazon Elastic Container Registry
-
將映像連接至您的 Amazon SageMaker 網域
-
讓您的使用者從您的 JupyterLab 空間存取映像
步驟 1:建立 Dockerfile
建立 Dockerfile 以定義在使用者容器中執行應用程式所需的環境所需的步驟。
重要
您的 Dockerfile 必須符合 中提供的規格Dockerfile 規格。
使用下列 Dockerfile 範本建立 Amazon Linux 2 映像:
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='*'
使用下列 Dockerfile 範本建立 Amazon SageMaker Distribution Image:
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"]
步驟 2:建置 Dockerfile
在與 Dockerfile 相同的目錄中,使用下列命令建置映像:
docker build -t username/imagename:tag your-account-id.dkr.ecr.
AWS 區域
.amazonaws.com/your-repository-name
:tag
重要
您的映像必須以下列格式標記: 123456789012
.dkr.ecr.your-region.amazonaws.com/your-repository-name
:tag
否則,您將無法將其推送至 Amazon Elastic Container Registry 儲存庫。
步驟 3:將映像推送至 Amazon Elastic Container Registry 儲存庫
建立映像之後,請使用下列命令登入 Amazon ECR儲存庫:
aws ecr get-login-password --region
AWS 區域
| docker login --username AWS --password-stdin123456789012
.dkr.ecr.AWS 區域
.amazonaws.com
登入後,請使用下列命令推送 Dockerfile:
docker push
123456789012
.dkr.ecr.AWS 區域
.amazonaws.com/your-repository-name
:tag
步驟 4:將映像連接至使用者的 Amazon SageMaker 網域
推送映像之後,您必須從 Amazon SageMaker 網域存取映像。使用下列程序將映像連接至 SageMaker 網域:
-
開啟SageMaker主控台
。 -
在管理員組態 下,選擇網域 。
-
從網域清單中,選取網域。
-
開啟環境索引標籤。
-
針對個人 Studio 應用程式 的自訂映像,選擇連接映像 。
-
指定映像來源。
-
選擇 Next (下一步)。
-
選擇提交。
您的使用者現在可以從其 JupyterLab 空間選取您已連接至其網域的影像。