Docker:使用 JupyterLab 进行数据科学

使用 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 创建一个名为

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/35744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot中的日志切面编程

Spring Boot中的日志切面编程 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Spring Boot项目中如何利用日志切面编程,提升系统…

2024年6月26日 (周三) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键,实现一键唤起、一键隐藏的 Windows 工具,并且支持窗口动态绑定快捷键(无需设置自动实现)。 土豆录屏: 免费、无录制时长限制、无水印的录屏软件 《Granblue Fantasy Versus: Risi…

数据结构:几种基本的数据结构

线性结构: 数组(Array):数组是一段连续的内存空间,用于存储相同类型的元素,支持随机访问但插入和删除可能较慢。链表(Linked List):链表中的元素在内存中不是顺序存放的&…

【Linux命令基础】文件管理命令(三)

文章目录 前言软连接与硬连接软连接硬连接tree命令pwd命令touch命令which命令重定向命令总结前言 在我们的上一篇文章中,我们介绍了一些基本的Linux文件管理命令,如 cp、mv 等。这些命令对于日常的文件操作任务非常有用。然而,Linux 提供的功能远不止这些。在本文中,我们将…

PS教程29

图层蒙版 以案例来解释蒙版的作用 将这两张图片原框背景切换将图二的背景选中使用套索工具选中区域切换图一CtrlA全选CtrlC复制编辑-选择性粘贴-贴入即可贴入如果位置不对用移动工具进行调整 这就是图层蒙版 图层蒙版本质作用:是临时通道,支持黑白灰三种…

Linux开发讲课16--- 【内存管理】页表映射基础知识2

ARM32页表和Linux页表那些奇葩的地方 ARM32硬件页表中PGD页目录项PGD是从20位开始的,但是为何头文件定义是从21位开始? 历史原因:Linux最初是基于x86的体系结构设计的,因此Linux内核很多的头文件的定义都是基于x86的&#xff0c…

Java中Collection的成员及其特点

Collection集合 list集合系列 ArrarList集合 底层基于数组来实现 查询速度快(根据索引查询数据) 删除效率低(可能需要把后面很多的数据往后移) 添加效率…

代码随想录训练营第二十一天 669修建二叉搜索树 108将有序数组转换为二叉搜索树 538把二叉搜索树转换为累加树

第一题: 原题链接:669. 修剪二叉搜索树 - 力扣(LeetCode) 思路: 终止条件: 如果root本身为null的话直接返回null; 如果当前节点的val值小于low边界,说明当前这个节点是要删除的…

软件构造 | Abstract Data Type (ADT)

软件构造 | Abstract Data Type (ADT) ​ 抽象数据类型与表示独立性:如何设计良好的抽象数据结构,通过封 装来避免客户端获取数据的内部表示(即“表示泄露”),避免潜在 的bug——在client和implementer之间建立“防火…

鸿蒙开发Ability Kit(程序框架服务):【FA模型切换Stage模型指导】 配置文件差异

配置文件的差异 FA模型应用在[config.json文件]中描述应用的基本信息,一个应用工程中可以创建多个Module,每个Module中都有一份config.json文件。config.json由app、deviceConfig和module三部分组成,app标签用于配置应用级别的属性&#xff…

裸机与操做系统区别(RTOS)

声明:该系列笔记是参考韦东山老师的视频,链接放在最后!!! rtos:这种系统只实现了内核功能,比较简单,在嵌入式开发中,某些情况下我们只需要多任务,而不需要文件…

网络构建和设计方法_2.网络技术遴选

网络遴选工作是通信系统设计中关键的一项工作,根据计划实施的网络建设要求,遴选工作通常分为局域网、广域网和路由协议的选择。 1.局域网技术遴选 1)生成树协议(Spanning Tree Protocol,STP) 在局域网构建…

前端项目结构介绍与Vue-cli(脚手架)环境搭建

传统的前端项目结构 一个项目中有许多html文件 每一个html文件都是相互独立的 如果需要在页面中导入一些外部依赖的组件(vue.js,elementUI),就需要在每一个html文件中引用都导入,十分的麻烦 而且这些外部组件都需要在其官网中自行下载,也增加了导入的繁琐程度 当今的前端项…

PMBOK® 第六版 实施整体变更控制

目录 读后感—PMBOK第六版 目录 对于变化的态度,个人引用两句加以阐释,即“流水不腐,户枢不蠹”与“不以规矩,不能成方圆”。这看似相互矛盾,实则仿若两条腿总是一前一后地行进。有一个典型的例子,“自由美…

基于IM948(Low-cost IMU+蓝牙)模块的高精度PDR(Pedestrian Dead Reckoning)定位系统 — 可以提供模块和配套代码

一、背景与意义 行人PDR定位系统中的PDR(Pedestrian Dead Reckoning,即行人航位推算)背景意义在于其提供了一种在GPS信号不可用或不可靠的环境下,对行人进行精确定位和导航的解决方案。以下是关于PDR背景意义的详细描述&#xff1…

更正:VMWARE出现错误关闭Hyper-V会导致Docker Desktop报错

之前使用VMWARE时出现错误,当时在服务处将《HV主机服务》关闭,并使用命令 bcdedit /set hypervisorlaunchtype off 造成Docker Desktop无法使用 解决方法: 运行bcdedit /set hypervisorlaunchtype auto 注意这里最后不是on也不是start 重启…

Python代码打包成exe应用

目录 一、前期准备 二、Pyinstaller打包步骤 Pyinstaller参数详解 三、测试 Spec 文件相关命令 一、前期准备 (1)首先,我们需要确保你的代码可以在本地电脑上的pycharm正常运行成功。 (2)我们要先安装Pyinstalle…

AI智能体 | 扣子Coze 工作流中如何嵌入代码,看这一篇就够了

Coze的工作流中除了能嵌入大模型,插件,图像流,其他工作流外,还能嵌入代码。嵌入代码的好处是对一些复杂的返回结果进行二次处理。 Coze的代码支持js和python两种语言。这次用python来做演示介绍 在节点中选择代码 弹出对话框如下…

python-docx 设置页面边距、页眉页脚高度

本文目录 前言一、docx 页面边距在哪里二、对 <w:pgMar> 的详细说明1、上边距的说明2、右边距的说明3、下边距的说明4、左边距的说明5、页眉高度的说明6、页脚高度的说明三、设置 docx 页边距、页眉页脚高度1、完整代码2、代码执行效果图四、补充一些内容1、页面边距的两…

conda安装管理配置

原文链接&#xff1a;conda管理配置 导言 安装卸载 卸载 卸载 docker sudo rm -r /opt/anaconda3 #conda安装位置安装 从镜像archive中下载sh脚本安装 bash ./software/Anaconda3-2024.02-1-Linux-x86_64.sh -b -p /opt/anaconda3 #conda安装位置管理 查看 conda --ver…