

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

# 自定义镜像
<a name="studio-updated-jl-admin-guide-custom-images"></a>

如果您需要的功能与 SageMaker 发行版提供的功能不同，则可以自带带有自定义扩展和软件包的镜像。您还可以使用它对 JupyterLab 用户界面进行个性化设置，以满足自己的品牌或合规需求。

下一页将提供 JupyterLab特定信息和模板，用于创建您自己的自定义 SageMaker AI 镜像。这旨在补充 Amazon SageMaker Studio 关于创建自己的 SageMaker AI 图像和将自己的图像带到 Studio 的信息和说明。要了解有关自定义 Amazon SageMaker AI 图像以及如何将自己的图像带到 Studio 的信息，请参阅[自带映像（BYOI）](studio-updated-byoi.md)。

**Topics**
+ [应用程序的运行状况检查和 URL](#studio-updated-jl-admin-guide-custom-images-app-healthcheck)
+ [Dockerfile 示例](#studio-updated-jl-custom-images-dockerfile-templates)

## 应用程序的运行状况检查和 URL
<a name="studio-updated-jl-admin-guide-custom-images-app-healthcheck"></a>
+ `Base URL`：BYOI 应用程序的基本 URL 必须为 `jupyterlab/default`。您只能有一个应用程序，且必须始终命名为 `default`。
+ `HealthCheck API`— SageMaker AI 使用端口的运行状况检查端点`8888`来检查 JupyterLab应用程序的运行状况。 `jupyterlab/default/api/status`是运行状况检查的终端节点。
+ `Home/Default URL`— 使用的`/opt/.sagemakerinternal`和`/opt/ml`目录 AWS。`/opt/ml` 中的元数据文件包含有关 `DomainId` 等资源的元数据。
+ 身份验证：要为用户启用身份验证，请关闭基于令牌或密码的 Jupyter Notebook 身份验证，并允许所有来源。

## Dockerfile 示例
<a name="studio-updated-jl-custom-images-dockerfile-templates"></a>

以下示例是符合上述信息与[自定义映像规范](studio-updated-byoi-specs.md)的 `Dockerfile`。

**注意**  
如果您要将自己的镜像带到 SageMaker Unified Studio，则需要遵循*亚马逊 Unifie SageMaker d Studio 用户*[指南中的 Dockerfile 规范](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)。  
`Dockerfile` SageMaker Unified Studio 的示例可以在*亚马逊 Unified Studio 用户指南的 Docker SageMaker f* [ile 示例](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)中找到。

------
#### [ Example AL2023 Dockerfile ]

以下是符合上述信息与[自定义映像规范](studio-updated-byoi-specs.md)的示例 AL2023 Dockerfile。

```
FROM public.ecr.aws/amazonlinux/amazonlinux:2023

ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

# Install Python3, pip, and other dependencies
RUN yum install -y \
    python3 \
    python3-pip \
    python3-devel \
    gcc \
    shadow-utils && \
    useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \
    yum clean all

RUN python3 -m pip install --no-cache-dir \
    'jupyterlab>=4.0.0,<5.0.0' \
    urllib3 \
    jupyter-activity-monitor-extension \
    --ignore-installed

# Verify versions
RUN python3 --version && \
    jupyter lab --version

USER ${NB_UID}
CMD jupyter lab --ip 0.0.0.0 --port 8888 \
    --ServerApp.base_url="/jupyterlab/default" \
    --ServerApp.token='' \
    --ServerApp.allow_origin='*'
```

------
#### [ Example 亚马逊 SageMaker 配送 Dockerfile ]

以下是符合上述信息与[自定义映像规范](studio-updated-byoi-specs.md)的示例 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 ["entrypoint-jupyter-server"]
```

------