使用 JupyterLab 进行数据科学
Docker 和 JupyterLab 是两个强大的工具,可以增强您的数据科学工作流程。在本指南中,您将学习如何将它们结合使用,以创建和运行可重现的数据科学环境。本指南基于《Supercharging AI/ML Development with JupyterLab and Docker》。
在本指南中,您将学习如何:
- 在本地机器上运行带有 JupyterLab 的个人 Jupyter 服务器
- 自定义您的 JupyterLab 环境
- 与其他数据科学家共享您的 JupyterLab 笔记本和环境
什么是 JupyterLab?
JupyterLab 是一个开源应用程序,围绕计算笔记本文档的概念构建。它支持代码共享与执行、数据处理和可视化,并提供一系列用于创建图表的交互功能。
为什么将 Docker 和 JupyterLab 一起使用?
通过结合 Docker 和 JupyterLab,您可以享受两者的优势,例如:
- 容器化确保在所有部署中都有一致的 JupyterLab 环境,消除兼容性问题。
- 容器化的 JupyterLab 通过消除手动设置环境的需求简化了共享和协作。
- 容器为 JupyterLab 提供可扩展性,支持工作负载分配和高效的资源管理,如在 Kubernetes 平台上。
前提条件
请安装最新版本的 Docker Desktop。
运行并访问 JupyterLab 容器
在终端中运行以下命令以运行 JupyterLab 容器:
docker run --rm -p 8889:8888 quay.io/jupyter/base-notebook start-notebook.py --NotebookApp.token='my-token'
命令中各部分的解释如下:
-p 8889:8888
:将主机的 8889 端口映射到容器的 8888 端口。start-notebook.py --NotebookApp.token='my-token'
:设置访问令牌而不是使用随机令牌。
有关更多详细信息,请参阅 Jupyter Server 选项和 docker run
CLI 参考。
如果这是您第一次运行镜像,Docker 将下载并运行它。下载镜像所需的时间将取决于您的网络连接。
镜像下载并运行后,您可以访问该容器。在网络浏览器中导航到 localhost:8889/lab?token=my-token
以访问容器。
要停止容器,请在终端中按 ctrl+c
。
访问系统上的现有笔记本
您可以使用绑定挂载来访问现有的笔记本。在终端中切换到现有笔记本所在的目录,然后根据您的操作系统运行以下命令。
docker run --rm -p 8889:8888 -v "$(pwd):/home/jovyan/work" quay.io/jupyter/base-notebook start-notebook.py --NotebookApp.token='my-token'
选项 -v
告诉 Docker 将您当前工作目录挂载到容器内的 /home/jovyan/work
。默认情况下,Jupyter 镜像的根目录是 /home/jovyan
,您只能在容器中的该目录访问或保存笔记本。
现在您可以访问 localhost:8889/lab?token=my-token
并打开绑定挂载目录中的笔记本。
要停止容器,请在终端中按 ctrl+c
。
Docker 还提供卷,这是持久化 Docker 容器生成和使用的数据的首选机制。虽然绑定挂载依赖于主机机器的目录结构和操作系统,但卷完全由 Docker 管理。
保存并访问笔记本
当您删除容器时,该容器中的所有数据都会被删除。要将笔记本保存到容器外部,可以使用卷。
使用卷运行 JupyterLab 容器
要使用卷启动容器,请在终端中运行以下命令:
docker run --rm -p 8889:8888 -v jupyter-data:/home/jovyan/work quay.io/jupyter/base-notebook start-notebook.py --NotebookApp.token='my-token'
选项 -v
告诉 Docker 创建一个名为