选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

Dockerfile 规范

聚焦模式
Dockerfile 规范 - 亚马逊 SageMaker AI

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

您在 Dockerfile 中指定的映像必须符合以下各节中的规范,才能成功创建映像。

运行映像

  • Entrypoint— 我们建议使用将入口点嵌入到图像中 Docker CMDEntrypoint说明。您还可以配置运行时传递给容器的 ContainerEntrypointContainerArguments

  • EnvVariables:使用 Studio,您可以配置容器可用的 ContainerEnvironment 变量。环境变量被来自 SageMaker AI 的环境变量覆盖。为了给您提供更好的体验,环境变量通常为 AWS_SageMaker AI_namespaced,以便优先考虑平台环境。

    以下是环境变量:

    • AWS_REGION

    • AWS_DEFAULT_REGION

    • AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

    • SageMaker AI_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/ml目录-使用的/opt/.sagemakerintenral和目录 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"}
  • 日志目录 — /var/log/studio 保留给的日志目录 JupyterLab 以及与之关联的扩展。我们建议您在创建映像时不要使用文件夹。

应用程序的运行状况检查和 URL

  • Base URL:BYOI 应用程序的基本 URL 必须为 jupyterlab/default。您只能有一个应用程序,且必须始终命名为 default

  • HealthCheck APIHostAgent 使用 HealthCheckAPI at 端口 8888 来检查 JupyterLab 应用程序的运行状况。 jupyterlab/default/api/status是运行状况检查的终端节点。

  • Home/Default URL— 使用的/opt/.sagemakerinternal/opt/ml目录 AWS。/opt/ml 中的元数据文件包含有关 DomainId 等资源的元数据。

  • 身份验证:要为用户启用身份验证,请关闭基于令牌或密码的 Jupyter Notebook 身份验证,并允许所有来源。

以下是示例 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"]
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。