
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
SageMaker Notebook Container是一个沙盒化本地环境,可复制Amazon SageMaker Notebook实例,包括已安装的软件和库、文件结构和权限、环境变量、上下文对象及行为。
dockerdocker-composeSageMaker目录Amazon SageMaker提供AWS托管的Notebook实例,是数据科学家和开发者访问完整服务器以使用Amazon SageMaker的便捷方式。
然而,它存在成本问题、需上传所有数据至云端、依赖互联网访问及AWS控制台登录,且自定义难度较高。
为克服这些缺点,本Docker容器提供了可在本地笔记本电脑/台式机上使用的类似环境。
复制的功能包括完整的Jupyter Notebook和Lab服务器、多内核、AWS与SageMaker SDK、AWS和Docker CLI、Git集成、Conda及SageMaker示例选项卡。
AWS托管实例与本地容器并非互斥,应结合使用以增强数据科学体验。
关于此容器的详细背景说明可在Medium上查看。
为何使用Docker镜像?
最重要的目标是实现可在任何笔记本电脑或服务器上复制的可重复环境。
大多数功能可通过直接在本地电脑上安装和配置实现,但这会带来维护难题——每次库和工具升级时,都需自行管理这些升级。
此外,团队协作时,不同机器的配置差异可能导致兼容性问题,在一台机器上可行的操作在另一台机器上可能无法运行。
Docker
至少需要安装Docker引擎。
AWS凭证
为使AWS SDK和CLI正常工作,需在Notebook中配置AWS凭证。
建议在本地机器上配置AWS凭证,以便通过卷挂载供容器使用(避免每次启动容器时重新配置):
bashaws configure --profile default-api
AWS_PROFILE的值。后续运行容器时,只需添加卷挂载-v ~/.aws:/home/ec2-user/.aws:ro(Windows系统需将~替换为%USERPROFILE%)。
使用docker
启动sagemaker-notebook-container的最简单方法是使用docker run命令:
Unix系统:
bashexport CONTAINER_NAME=sagemaker-notebook-container export IMAGE_NAME=qtangs/sagemaker-notebook:tensorflow-p36 export WORKDDIR=/home/ec2-user export AWS_PROFILE=default-api docker run -t --name=${CONTAINER_NAME} \ -p 8888:8888 \ -e AWS_PROFILE=${AWS_PROFILE} \ -v ~/.aws:${WORKDDIR}/.aws:ro \ ${IMAGE_NAME}
Windows系统:
batset CONTAINER_NAME=sagemaker-notebook-container set IMAGE_NAME=qtangs/sagemaker-notebook:tensorflow-p36 set WORKDDIR=/home/ec2-user set AWS_PROFILE=default-api docker run -t --name=%CONTAINER_NAME% ^ -p 8888:8888 ^ -e AWS_PROFILE=%AWS_PROFILE% ^ -v %USERPROFILE%/.aws:%WORKDDIR%/.aws:ro ^ %IMAGE_NAME%
(将default-api替换为您自己~/.aws/credentials中的配置文件名称)
使用docker-compose
如果已安装Docker Compose(Windows和Mac的Docker Desktop已包含),可使用docker-compose.yml文件避免每次输入完整的docker run命令:
yaml# docker-compose.yml version: "3" services: sagemaker-notebook-container: image: qtangs/sagemaker-notebook:tensorflow-p36 container_name: sagemaker-notebook-container ports: - 8888:8888 environment: AWS_PROFILE: 'default-api' volumes: - ~/.aws:/home/ec2-user/.aws:ro # 用于AWS凭证
(Windows系统需将~替换为%USERPROFILE%)
(将default-api替换为您自己~/.aws/credentials中的配置文件名称)
配置完成后,每次只需运行:
bashdocker-compose up
或
bashdocker-compose up sagemaker-notebook-container
访问Jupyter Notebook
启动后会看到类似以下输出,点击http://127.0.0.1:8888/...链接(或复制到浏览器)即可访问Jupyter:
text[I 03:10:12.757 NotebookApp] Writing notebook server cookie secret to /home/ec2-user/.local/share/jupyter/runtime/notebook_cookie_secret [I 03:10:13.335 NotebookApp] JupyterLab extension loaded from /home/ec2-user/anaconda3/lib/python3.7/site-packages/jupyterlab [I 03:10:13.335 NotebookApp] JupyterLab application directory is /home/ec2-user/anaconda3/share/jupyter/lab [I 03:10:13.352 NotebookApp] [nb_conda] enabled [I 03:10:13.373 NotebookApp] Serving notebooks from local directory: /home/ec2-user/SageMaker [I 03:10:13.373 NotebookApp] The Jupyter Notebook is running at: [I 03:10:13.373 NotebookApp] http://02b8db3c9e73:8888/?token=a22fc474c429a74650cb9ce74faf0ef2eedee182fc2eddec [I 03:10:13.373 NotebookApp] or http://127.0.0.1:8888/?token=a22fc474c429a74650cb9ce74faf0ef2eedee182fc2eddec [I 03:10:13.373 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Docker CLI
许多SageMaker示例使用Docker构建自定义训练镜像。
本镜像无需复杂的Docker-in-Docker配置,而是通过使用主机的Docker引擎实现。基础镜像已安装Docker CLI,通过挂载主机的Docker socket连接主机Docker引擎:
运行容器时添加以下卷挂载:
bash-v /var/run/docker.sock:/var/run/docker.sock:ro
(Windows系统需更新为:-v //var/run/docker.sock:/var/run/docker.sock:ro)
Git集成
基础镜像已安装Git,允许直接从容器内访问Git。此外,Jupyter Lab已安装https://github.com/jupyterlab/jupyterlab-git%E6%89%A9%E5%B1%95%EF%BC%8C%E6%94%AF%E6%8C%81%E9%80%9A%E8%BF%87GUI%E5%BF%AB%E9%80%9F%E4%B8%8EGit%E4%BA%A4%E4%BA%92%E3%80%82
如果使用SSH连接Git仓库,需挂载.ssh文件夹:
bash-v ~/.ssh:/home/ec2-user/.ssh:ro
(Windows系统需将~替换为%USERPROFILE%)
共享SageMaker目录
要保存容器内创建的所有工作,可挂载本地目录作为/home/ec2-user下的SageMaker目录:
bash-v /Users/foobar/projects/SageMaker:/home/ec2-user/SageMaker
(将/Users/foobar/projects/SageMaker替换为您本地的实际文件夹路径)
以下示例脚本展示如何使用qtangs/sagemaker-notebook:python3镜像运行容器:
run-python3-container.sh:bashdocker run -t --name=sagemaker-notebook-container \ -p 8888:8888 \ -e AWS_PROFILE=default-api \ -v ~/.aws:/home/ec2-user/.aws:ro \ -v ~/.ssh:/home/ec2-user/.ssh:ro \ -v /Users/foobar/projects/SageMaker:/home/ec2-user/SageMaker \ qtangs/sagemaker-notebook:python3
docker-compose.yml:yamlversion: "3" services: sagemaker-notebook-container: image: qtangs/sagemaker-notebook:python3 container_name: sagemaker-notebook-container ports: - 8888:8888 environment: AWS_PROFILE: "default-api" volumes: - ~/.aws:/home/ec2-user/.aws:ro # 用于AWS凭证 - ~/.ssh:/home/ec2-user/.ssh:ro # 用于Git凭证 - /var/run/docker.sock:/var/run/docker.sock:ro # 用于Docker CLI - /Users/foobar/projects/SageMaker:/home/ec2-user/SageMaker # 用于在主机目录保存工作
(将/Users/foobar/projects/SageMaker替换为您本地的实际文件夹路径)
通过以下命令启动容器:
bashdocker-compose up sagemaker-notebook-container
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






来自真实用户的反馈,见证轩辕镜像的优质服务