本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为用户提供对自定义图像的访问权限
本文档提供了相关 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 弹性容器注册表
-
将图片附加到您的 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 模板创建亚马逊 SageMaker 配送映像:
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 弹性容器注册表存储库。
步骤 3:将镜像推送到 Amazon 弹性容器注册表存储库
生成映像后,使用以下命令登录到您的 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 应用程序的自定义图像,请选择附加图像。
-
指定图像来源。
-
选择下一步。
-
选择提交。
现在,您的用户可以从他们的 JupyterLab 空间中选择您已附加到其域名的图片。