使用docker搭建自己的jupyterhub多用户服务器

2023-11-10

1 选择基础镜像 这里我们选择jupyterhub的官方镜像

docker pull jupyterhub/jupyterhub

2 启动容器

docker run -p 8000:8000 -d --name jupyterhub jupyterhub/jupyterhub jupyterhub

此处映射端口可以指定,我使用默认端口映射8000

3 使用浏览器访问 ip:端口 使用root账户登录 如果不知道root密码可以重置密码

然后不出意外会出现这种情况:

登录失败

这是因为jupyter禁用了root账户登录,如果需要可以使用

docker exec -it jupyterhub bash

进入容器内部,会直接进入到work文件夹 里面有一个文件: jupyterhub_config.py

vim jupyterhub_config.py

添加配置使用root账户登录,如果加了也不行:

直接在容器中添加用户

useradd wzw

密码

passwd wzw

输入密码 完了之后也是登录不了的 会显示找不到user/用户名的文件目录

这时候我们新增用户文件夹

chmod -R 777 home # 给home 权限

cd /home # 进入目录

mkdir wzw`` #创建文件夹

chown wzw:wzw wzw -R #这句话的意思是将wzw文件夹给wzw用户 并开启权限

完事之后添加此用户为管理员用户

vim jupyterhub_config.py 打开配置文件添加

c.Authenticator.admin_users = {'wzw'}

3安装中文界面,并浏览器访问

pip install jupyterlab-language-pack-zh-CN # 安装中文界面

打开浏览器登录,在Settings里面可以切换语言为简体中文
1

这是我配置完的界面 实际上你们登录应该是jupyter notebook的界面 就像这样

在这里插入图片描述

如果你想开启jupyterlab 需要安装jupyterlab的包

pip install jupyterlab

然后修改jupyterhub的默认使用jupyterlab

vim jupyterhub_config.py 打开配置文件 添加

c.Spawner.default_url = '/lab'

再次打开浏览器 就变成jupyterlab的界面了 jupyterlab其实是jupyternotebook的升级版 包含了jupyternotebook的全部功能 更加强大

添加java内核 转

具体步骤:

一、java 环境配置
1.下载 jdk (这里从官网下载最新版 11.0.1)

具体下载链接可以自己从浏览器内点击下载后复制,上述链接有用户参数,可能只能在当时用,就是说要登录甲骨文官网,之后找到jdk11的linux-x64_bin.tar.gz版本 复制链接 使用wget+链接下载

2.解压下载好的压缩包
tar -zxvf jdk-11.0.15.0.tar.gz

名称不对应使用 mv 命令更名即可

注意tar解压出来版本可能和文档上的不一样

3.使用 root 权限用户新建 jdk 目录,并且将解压的文件夹移动到新建的目录
mkdir /usr/lib/jdk

mv jdk-11.0.15.0 /usr/lib/jdk

移动后的目录结构为:/usr/lib/jdk/jdk-11.0.15.0

4.配置环境变量
vi /etc/profile

在系统环境文件中添加以下语句:

#----------JDK begin
export JAVA_HOME=/usr/lib/jdk/jdk-11.0.15.0

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
#-------------JDK end

其中 JAVA_HOME 可以根据具体情况改变

使用以下命令激活刚配置的环境变量:

source /etc/profile

5.测试 java 是否安装成功
java -version

输出 java version “11.0.15.0” 等版本信息即安装成功

二、java 内核安装
1.下载 java 内核压缩包
wget https://github.com/SpencerPark/IJava/releases/download/v1.2.0/ijava-1.2.0.zip

2.解压下载得压缩包
unzip ijava-1.2.0.zip

解压后得到一个 install.py 的文件,和一个 java 文件夹

3.安装 java 内核
在第二步解压后的文件夹中,执行以下命令安装:

python install.py --sys-prefix

确保 python 版本为 3,或者用 python3 执行也可以

再次打开jupyterhub 会显示java的内核
2

切换到java内核无提示说明安装成功!

安装c内核

使用pip安装包
pip install jupyter-c-kernel

运行安装命令
sudo install_c_kernel

添加c内核到所有用户
python -m ipykernel install --user --name=kernelname --display-name showname

浏览器打开
在这里插入图片描述

看到c切换到c内核无提示说明安装成功!

添加用户

我们使用上面的管理员账户登录 点击文件 点击hub管理界面 点击Admin 就可以看到当前用户界面 可以删除用户 添加用户 暂停用户服务…

到这就完成全部安装过程!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用docker搭建自己的jupyterhub多用户服务器 的相关文章

  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 带有 npm 启动脚本的 Nodejs 应用程序

    我对nodejs很陌生 在我的docker化环境中 我想为nodejs应用程序提供appdynamics支持 这要求每个应用程序都要求将以下内容作为其应用程序的第一行 require appdynamics profile controll
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 我可以创建自定义 java.* 包吗?

    我可以创建一个与预定义包同名的自己的包吗在Java中 比如java lang 如果是这样 结果会怎样 这难道不能让我访问该包的受保护的成员 如果不是 是什么阻止我这样做 No java lang被禁止 安全管理器不允许 自定义 类java
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • Trie 数据结构 - Java [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何库或文档 链接提供了在 java 中实现 Trie 数据结构的更多信息 任何帮助都会很棒 Thanks 你可以阅读Java特里树
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • 带有 Maven Wrapper 的 Java 17 导致无法识别的 VM 选项“MaxPermSize=512m”

    I use OpenJDK 17 https jdk java net 17 使用 Maven Wrapper 3 8 2 从春季初始化 https start spring io Maven项目 JAR打包 Java 17 Spring

随机推荐

  • vue 项目中通过监听 localStorage 的变化进行父子页面传参

    vue实时监听 localStorage 变化 应用场景 1 页面B需要实时获取页面A数据更改 2 父子页面之间的传参 代码实例 B页面实时获取A页面的数据变化 在 页面A 进行缓存修改or插入缓存 localStorage setItem
  • MySQL8.0_JDBC笔记

    第一章 JDBC概述 之前我们学习了JavaSE 编写了Java程序 数据保存在变量 数组 集合等中 无法持久化 后来学习了IO流可以将数据写入文件 但不方便管理数据以及维护数据的关系 后来我们学习了数据库管理软件MySQL 可以方便的管理
  • Java对象的生命周期

    Java对象的生命周期 Java语言除了原始数据类型外 还有一种类型被称之为引用类型 对象的创建一般需要使用new关键字 将创建的对象存储在堆上 heap 而在线程栈中会保留一个指向堆上地址的引用 下图将展示堆栈之间的具体关系 栈中被分割成
  • [UE4] C++实现Delegate Event实例(例子、example、sample)

    相关文章 如何用蓝图实现Delegate Event http aigo iteye com blog 2269663 原文作者 玄冬Wong 转载请注明出处 http aigo iteye com blog 2301010 虽然官方doc
  • 数据库实验3-单表查询

    2021011203 1 查询全体学生的姓名 出生年份和所在系 2 查询选修了课程的学生学号 SELECT DISTINCT sno FROM scfcy WHERE cno IS NOT NULL distinct去除重复的 从名为scf
  • Python 循环嵌套

    Python 语言允许在一个循环体里面嵌入另一个循环 Python for 循环嵌套语法 for iterating var in sequence for iterating var in sequence statements s st
  • 有什么职业入行时间短,薪资高?

    有什么职业入行时间短 薪资高 1 可以通过短期 半年以内 的学习入行 2 入职后 排除运气等不可控因素 能拿到 10k 以上 百分之十的人能做到就算 3 工作期间晚上有极其充足的生物钟休息时间 4 能用脑子解决的事情别用体力 说到入行时间短
  • 收集金币(人人网笔试)

    题目描述 小M来到了一个迷宫中 这个迷宫可以用一个N M的矩阵表示 在这个迷宫的某些位置中存在金币 一开始小M在迷宫的入口 矩阵的左上角 位置 1 1 处 迷宫的出口位于矩阵的右下角 位置 N M 处 每一次小M可以选择向下或者向右走到一个
  • const 指针 常量指针 指针常量 常量指针常量

    常量指针 指向常量的指针 在指针定义语句的类型前加const 表示该指针指向一个常量 const int a 666 const int p a 常量a只能被访问而不能被改写 但指向常量a的常量指针可以改写 指针常量 在指针定义语句的指针名
  • LeetCode-从尾到头打印链表

    用vector的reverse函数实现翻转hh Definition for singly linked list struct ListNode int val ListNode next ListNode int x val x nex
  • 解决Unable to find vcvarsall.bat问题

    目录 前言 方法1 方法2 前言 用Windows平台做Python开发时 难免会遇到Unable to find vcvarsall bat错误 我在网上疯搜了一段时间之后 才找到解决办法 还是两个 不想装VS的朋友可以用第二个 方法1
  • winows搭建远程仓库Github(linux通用)

    winows搭建远程仓库Github linux通用 文章目录 winows搭建远程仓库Github linux通用 创建远程仓库 配置SSH 克隆项目 多人协同开发 代码冲突 标签 分支 创建远程仓库 以下操作为演示在Github网站上创
  • dubbo解析-详解元数据中心MetadataReport

    本文基于dubbo 2 7 5版本代码 详解元数据中心MetadataReport 一 配置 二 注册中心参数simplified原理 三 元数据中心 1 AbstractMetadataReport 1 publishAll 2 stor
  • 计算机复习6----码分多址CDMA计算

    该部分知识位于书P57 看题 解法 将 A B C D每个的码片与收到的码片序列 逐个进行乘法 例 1 将A中第一位 1与S中第一位 1 相乘 得 1 2 第二位 1 1 1 以此类推 3 得 1 1 3 1 1 3 1 1 4 对所得 相
  • 在Java中使用tabula提取PDF中的表格数据

    问题 如何将pdf文件中指定的表格数据提取出来 尝试过的工具包有 pdfbox tabula 最终选用tabula 两种工具的比较 pdfbox 其中 pdfbox能将pdf中的内容直接提取成String 代码片段 public stati
  • 梦断代码阅读笔记01

    以前的我很难理解软件时间这个问题 以为就是敲代码的时间总和就是 因为以前的我在做项目的时候没有计划 直接上来就是敲 没有任何预估 但是读完这本书的前一部分发现 我以前真是太愚昧了 真正的项目不单单是敲代码 反而敲代码占得比例还不是很大 而主
  • C++内存泄漏及解决办法

    1 C 内存泄漏是什么 内存泄漏指的是由于疏忽或错误造成了程序未能释放掉不再使用的内存 2 造成的后果 性能不良 内存会耗尽 3 C 没有垃圾回收机制 我们需要关注那些类型的内存泄漏 堆内存泄漏 在内存中程序员手动分配的一块内存 mallo
  • IDEA将java项目打包为jar包

    方法 首先在src gt resources目录下建立一个文件夹 然后再在新建文件夹里面建立META INF文件夹 不推荐直接建立META INF 否则后面打包完的jar包需要手动修改配置 然后点击File gt Project Struc
  • R - 简单随机抽样

    本文使用的包 library tidyverse library moderndive 使用的数据集 总共有2400个红球和白色球 bowl 此处采用简单随机抽样 从2400个球中估算出红球所占比例 采用不同的抽取方法 一组是一次性抽取30
  • 使用docker搭建自己的jupyterhub多用户服务器

    1 选择基础镜像 这里我们选择jupyterhub的官方镜像 docker pull jupyterhub jupyterhub 2 启动容器 docker run p 8000 8000 d name jupyterhub jupyter