
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
用于定义自定义栈的小型基础镜像
jovyan(uid=1000,可配置,见选项),属于users组(gid=100),拥有/home/jovyan和/opt/conda目录的所有权ipython、jupyter kernelgateway、jupyter lab)sudo选项适合作为构建自定义Jupyter环境的基础,尤其适用于需要根据特定需求定制Python环境、安装额外科学计算包或集成其他Jupyter应用的场景。可作为数据科学、机器学习项目的基础开发环境。
以下命令启动一个容器,Notebook服务器在8888端口监听HTTP连接,并配置随机生成的身份验证令牌。
bashdocker run -it --rm -p 8888:8888 jupyter/base-notebook
注意 notebook启动日志中包含的身份验证令牌,访问Notebook服务器时需在URL中包含该令牌或在登录表单中输入。
Docker容器默认执行start-notebook.sh脚本。该脚本处理下一节文档中所述的NB_UID、NB_GID和GRANT_SUDO特性,然后执行jupyter notebook。
可通过设置JUPYTER_ENABLE_LAB启动https://github.com/jupyterlab/jupyterlab%EF%BC%9A
bashdocker run -it --rm -e JUPYTER_ENABLE_LAB=1 -p 8888:8888 jupyter/base-notebook
启动容器时,可通过start-notebook.sh脚本传递Jupyter命令行选项。例如,使用IPython.lib.passwd()生成的自定义密码哈希(而非默认令牌)保护Notebook服务器:
bashdocker run -d -p 8888:8888 jupyter/base-notebook start-notebook.sh --NotebookApp.password='sha1:74ba40f8a388:c913541b7ee99d15d5ed31d4226bf7838f83a50e'
例如,设置notebook服务器的基础URL:
bashdocker run -d -p 8888:8888 jupyter/base-notebook start-notebook.sh --NotebookApp.base_url=/some/path
例如,禁用所有身份验证机制(不推荐):
bashdocker run -d -p 8888:8888 jupyter/base-notebook start-notebook.sh --NotebookApp.token=''
也可绕过start-notebook.sh脚本,在容器中运行自定义命令,详见本文档后面的"替代命令"部分。
可通过以下可选参数自定义Docker容器的执行及其运行的命令:
-e GEN_CERT=yes - 生成自签名SSL证书,并配置Jupyter Notebook使用该证书接受加密HTTPS连接。-e NB_UID=1000 - 指定jovyan用户的uid。用于挂载具有特定文件所有权的主机卷时。要使此选项生效,必须以--user root运行容器(start-notebook.sh脚本会在调整用户ID后执行su jovyan)。-e NB_GID=100 - 指定jovyan用户的gid。用于挂载具有特定文件所有权的主机卷时。要使此选项生效,必须以--user root运行容器(start-notebook.sh脚本会在调整组ID后执行su jovyan)。-e GRANT_SUDO=yes - 赋予jovyan用户无密码sudo权限。用于安装OS包时。要使此选项生效,必须以--user root运行容器(start-notebook.sh脚本会在将jovyan添加到sudoers后执行su jovyan)。仅当信任用户或容器运行在隔离主机上时,才应启用sudo。-v /some/host/folder/for/work:/home/jovyan/work - 将主机目录挂载为容器中的文件夹。用于在容器销毁后保留notebook和其他工作。必须授予容器内notebook用户或组(NB_UID或NB_GID)对主机目录的写权限(例如sudo chown 1000 /some/host/folder/for/work)。--group-add users - 当指定特定用户ID启动容器(-u 5000)而非以root身份启动并依赖NB_UID和NB_GID设置用户和组时,使用此参数。可将SSL密钥和证书文件挂载到容器中,并配置Jupyter Notebook使用它们接受HTTPS连接。例如,挂载包含notebook.key和notebook.crt的主机文件夹:
bashdocker run -d -p 8888:8888 \ -v /some/host/folder:/etc/ssl/notebook \ jupyter/base-notebook start-notebook.sh \ --NotebookApp.keyfile=/etc/ssl/notebook/notebook.key \ --NotebookApp.certfile=/etc/ssl/notebook/notebook.crt
或者,挂载包含密钥和证书的单个PEM文件:
bashdocker run -d -p 8888:8888 \ -v /some/host/folder/notebook.pem:/etc/ssl/notebook.pem \ jupyter/base-notebook start-notebook.sh \ --NotebookApp.certfile=/etc/ssl/notebook.pem
无论哪种情况,Jupyter Notebook都要求密钥和证书是base64编码的文本文件。证书文件或PEM可包含一个或多个证书(如服务器证书、中间证书和根证书)。
有关使用SSL的更多信息,请参阅:
默认Python 3.x Conda环境位于/opt/conda。
jupyter、ipython、python、pip和conda等命令在环境中均可用。为方便起见,无论当前激活哪个环境,都可使用以下命令将包安装到任一环境:
bash# 安装包到默认(python 3.x)环境 pip install some-package conda install some-package
start.sh
start.sh脚本支持与默认start-notebook.sh脚本相同的特性(如GRANT_SUDO),但允许指定任意命令执行。例如,在容器中运行基于文本的ipython控制台:
bashdocker run -it --rm jupyter/base-notebook start.sh ipython
或者,运行JupyterLab而非经典notebook:
bashdocker run -it --rm -p 8888:8888 jupyter/base-notebook start.sh jupyter lab
当从该镜像派生新Dockerfile并安装带有jupyter console、jupyter kernelgateway等子命令的其他Jupyter应用时,此脚本特别有用。
其他命令
可绕过提供的脚本并指定任意启动命令。但请注意,这样做会导致上述某些特性(如GRANT_SUDO)无法正常工作。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务