Jupyter Docker堆栈
Jupyter Docker堆栈是一组随时可用的Docker镜像,包含Jupyter应用程序和交互式计算工具。 您可以使用堆栈镜像执行以下任何操作(以及更多):
- 启动带有JupyterLab前端的个人Jupyter服务器(默认)
- 使用JupyterHub为团队运行JupyterLab
- 在本地Docker容器中启动带有Jupyter Notebook前端的个人Jupyter服务器
- 编写自己的项目Dockerfile
快速开始
您可以在mybinder.org上尝试相对较新的quay.io/jupyter/base-notebook镜像构建。 否则,如果您已安装Docker,知道您想使用哪个Docker镜像,并希望在容器中启动单个Jupyter应用程序,以下示例可能会帮助您入门。
ReadTheDocs上的用户指南详细描述了其他用途和功能。
自`2023-10-20`起,我们的镜像仅推送到`Quay.io`注册表。
旧镜像在Docker Hub上可用,但不再更新。
示例1
此命令从Quay.io拉取标记为2024-05-27
的jupyter/scipy-notebook
镜像(如果本地主机上尚未存在)。
然后,它启动一个运行带有JupyterLab前端的Jupyter服务器的容器,并将容器的内部端口8888
暴露给主机的端口10000
:
docker run -p 10000:8888 quay.io/jupyter/scipy-notebook:2024-05-27
您可以通过更改-p
选项的值为-p 8888:8888
来修改容器端口暴露的端口。
在浏览器中访问http://<hostname>:10000/?token=<token>
加载JupyterLab,
其中:
hostname
是运行Docker的计算机的名称token
是控制台上打印的秘密令牌。
服务器退出后,容器保持完整以供重新启动。
示例2
此命令从Quay.io拉取标记为2024-05-27
的jupyter/datascience-notebook
镜像(如果本地主机上尚未存在)。
然后,它启动一个运行带有JupyterLab前端的Jupyter服务器的_临时_容器,并在主机端口10000上暴露服务器。
docker run -it --rm -p 10000:8888 -v "${PWD}":/home/jovyan/work quay.io/jupyter/datascience-notebook:2024-05-27
命令中使用-v
标志将主机上的当前工作目录(示例命令中的${PWD}
)挂载为容器中的/home/jovyan/work
。
服务器日志会显示在终端中。
在浏览器中访问http://<hostname>:10000/?token=<token>
加载JupyterLab。
由于使用了--rm
标志,Docker 会在容器退出时自动清理容器并移除文件系统,但对容器中 ~/work
目录及其文件所做的任何更改在主机上仍会保持不变。-i
标志保持容器的 STDIN
打开,允许通过标准输入向容器发送输入。-t
标志为容器附加一个伪 TTY。
默认情况下,[jupyter 的 root_dir](https://jupyter-server.readthedocs.io/en/latest/other/full-config.html) 是 `/home/jovyan`。
因此,新的笔记本将保存在那里,除非你在文件浏览器中更改目录。
要更改默认目录,你必须通过在前面的命令中添加这一行来指定 `ServerApp.root_dir`:`start-notebook.py --ServerApp.root_dir=/home/jovyan/work`。
选择 Jupyter 前端
JupyterLab 是所有 Jupyter Docker Stacks 镜像的默认选项。
仍然可以切换回 Jupyter Notebook(或启动不同的启动命令)。
你可以通过在容器启动时传递环境变量 DOCKER_STACKS_JUPYTER_CMD=notebook
(或任何其他有效的 jupyter
子命令)来实现这一点;
更多信息可在文档中找到。
资源
致谢
- 从
2022-07-05
开始,aarch64
自托管运行器由@mathbunnyru
赞助。 请考虑在 GitHub 上赞助他的工作 - 从
2023-10-31
开始,aarch64
自托管运行器由出色的2i2c 非营利组织
赞助
CPU 架构
- 我们为
x86_64
和aarch64
平台发布容器 - 单平台镜像的标签前缀为
aarch64-
或x86_64-
,例如quay.io/jupyter/base-notebook:aarch64-python-3.11.6
- 从
2022-09-21
开始,我们创建多平台镜像(除了tensorflow-notebook
) - 从
2023-06-01
开始,我们也创建多平台的tensorflow-notebook
镜像 - 从
2024-05-27
开始,我们为x86_64
平台创建支持 CUDA 的pytorch-notebook
镜像变体
使用旧镜像
本项目一次只构建一组镜像。
如果你想使用较旧的 Ubuntu
和/或 Python
版本,可以使用以下镜像:
构建日期 | Ubuntu | Python | 标签 |
---|---|---|---|
2022-10-09 | 20.04 | 3.7 | 1aac87eb7fa5 |
2022-10-09 | 20.04 | 3.8 | a374cab4fcb6 |
2022-10-09 | 20.04 | 3.9 | 5ae537728c69 |
2022-10-09 | 20.04 | 3.10 | f3079808ca8c |
2022-10-09 | 22.04 | 3.7 | b86753318aa1 |
2022-10-09 | 22.04 | 3.8 | 7285848c0a11 |
2022-10-09 | 22.04 | 3.9 | ed2908bbb62e |
2023-05-30 | 22.04 | 3.10 | 4d70cf8da953 |
每周构建 | 22.04 | 3.11 | latest |
贡献
请查看 ReadTheDocs 上的贡献者指南 了解如何贡献配方、功能、测试和社区维护的堆栈的信息。
替代方案
- rocker/binder - 来自专注于R语言的rocker-project, 让你可以单独运行RStudio和Jupyter,或在JupyterHub中运行它们
- jupyter/repo2docker - 将git仓库转换为支持Jupyter的Docker镜像
- openshift/source-to-image - 一个从源代码构建构件并将其注入Docker镜像的工具
- jupyter-on-openshift/jupyter-notebooks - 兼容OpenShift的S2I构建器,用于创建基本的notebook镜像