使用JupyterLab进行数据科学
Docker和JupyterLab是两个可以增强您的数据科学工作流程的强大工具。在本指南中,您将学习如何将它们结合使用以创建和运行可重复的数据科学环境。本指南基于使用JupyterLab和Docker增强AI/ML开发。
在本指南中,您将学习如何
- 在本地机器上运行带有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服务器选项和docker run CLI参考。
如果这是您第一次运行镜像,Docker将下载并运行它。下载镜像所需的时间将取决于您的网络连接。
镜像下载并运行后,您可以访问容器。要访问容器,请在Web浏览器中导航到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'
$ docker run --rm -p 8889:8888 -v "%cd%":/home/jovyan/work quay.io/jupyter/base-notebook start-notebook.py --NotebookApp.token='my-token'
$ docker run --rm -p 8889:8888 -v "$(pwd):/home/jovyan/work" quay.io/jupyter/base-notebook start-notebook.py --NotebookApp.token='my-token'
$ 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创建一个名为jupyter-data
的卷,并将其挂载到容器的/home/jovyan/work
。
要访问容器,请在Web浏览器中导航到localhost:8889/lab?token=my-token