参考官方配置:
https://jupyterhub.readthedocs.io/en/stable/index.html

docker下安装jupyterHub

jupyterhub简介
部署步骤
1)拉取相关镜像,并设置和本地映射:
2)进入docker
3)增加用户用于登录jupyterhub的账户密码
4)安装jupyterhub和notebook
5)配置jupyterhub在启动后在哪个目录存储文件,并添加权限
6)启动jupyterhub
7)设置admin

配置JupyterHub使用JupyterLab
JupyterLab简介
JupyterLab安装
配置JupyterHub使用JupyterLab
多用户JupyterHub登录
登录认证方式
登录用户控制
jupyterHub支持GPU
安装docker
什么是docker
docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。
Docker 包括三个基本概念:
镜像(Image):Docker 镜像就相当于是一个 root 文件系统,类似于面向对象编程中的类。
容器(Container):容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等,类似于面向对象编程中的对象。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker与传统虚拟机性能对比:

安装docker
1)centOs
安装docker运行所需要的依赖,执行命令:

yum install -y yum-utils device-mapper-persistent-data lvm2

为了加快下载速度,将yum源设为国内的阿里云镜像,执行命令:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker-ce,执行命令:

yum clean all yum makecache fastyum -y install docker-ce

通过systemctl启动服务,执行命令:

systemctl start docker

查看docker版本,执行命令:

docker -v

2)Windows
Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。 Docker 实质上是在已经运行的 Linux
下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。因此,Docker 必须部署在 Linux
内核的系统上,如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。
win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/,docker toolbox 是一个工具集合,包括了所需的虚拟机,通过点击 Docker QuickStart 图标来启动 Docker Toolbox 终端。
3)Mac
Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装:

 brew install --cask --appdir=/Applications docker

部署jupyterhub
jupyterhub简介
JupyterHub是由Jupyter团队推出的一个支持多用户notebook的服务器。JupyterHub本身具有权限管理、配置管理、启动Notebook、反向代理等功能。官网的示意图很好地阐述了JupyterHub的功能:

其中需要特别注意的是图中的spawners,它所表达的意思是,Hub会为每一个登录的用户Spawn(直译为繁衍,实际上是启动一个新的实例)一个notebook,而后对于访用户的所有操作,Hub都会把它路由到这个notebook实例。这就是JupyterHub实现用户工作区虚拟化的方式。
JupyterHub 架构的介绍和原理详见官方文档,这里不再赘述,简单说就是 JupyterHub 把多用户认证和单用户(JupyterNotebook/JupyterLab) 的管理拆成了 Authenticator 和 Spawner 模块,可以根据不同的需要配置不同的认证方式或管理方式。

部署步骤
1)拉取相关镜像,并设置和本地映射:
不要拉取latest版本,latest版本存在Bug

docker run -p 8000:8000 -d --name jupyterhub -v /opt/jupyterhub/jupyterhub:/srv/jupyterhub -v /opt/jupyterhub/home:/home --restart=always jupyterhub/jupyterhub:1.0.0 jupyterhub

2)进入docker

docker exec -it jupyterhub bash

3)增加用户用于登录jupyterhub的账户密码

useradd jupyterhub
passwd jupyterhub

此时打开http://localhost:8000(http://127.0.0.1:8000/hub/login) 显示如下界面:
4)安装jupyterhub和notebook

pip install jupyterhub --upgrade
pip install notebook --upgrade

5)配置jupyterhub在启动后在哪个目录存储文件,并添加权限

chmod -R 777 home
cd /home
mkdir jupyterhub
chown jupyterhub:jupyterhub jupyterhub -R

6)启动jupyterhub
刷新http://localhost:8000 界面,可以正常创建文件
文件保存在设置的相应路径

7)设置admin
当前点击control Panel显示

设置当前账户为admin
创建config文件
设置当前账户为admin后


再次登录,点击control Panel显示如下,可以管理Users:

配置JupyterHub使用JupyterLab
JupyterHub默认是使用Jupyter Notebook,如果想使用Jupyter
Notebook的升级版本JupyterLab,还需要额外配置。
JupyterLab简介
JupyterLab是Jupyter主打的最新数据科学生产工具,某种意义上,它的出现是为了取代Jupyter Notebook,JupyterLab包含了Jupyter Notebook所有功能。

JupyterLab作为一种基于web的集成开发环境,可以使用它编写notebook、操作终端、编辑markdown文本、打开交互模式、查看csv文件及图片等功能。

upyterLab有以下特点:

交互模式:Python交互式模式可以直接输入代码,然后执行,并立刻得到结果,因此Python交互模式主要是为了调试Python代码用的
内核支持的文档:可以在Jupyter内核中运行的任何文本文件(Markdown,Python,R等)中启用代码
模块化界面:可以在同一个窗口同时打开好几个notebook或文件(HTML, TXT, Markdown等等),都以标签的形式展示,更像是一个IDE
镜像notebook输出:轻易地创建仪表板
同一文档多视图:实时同步编辑文档并查看结果
支持多种数据格式:既可以查看并处理多种数据格式,也能进行丰富的可视化输出或者Markdown形式输出
云服务:使用Jupyter Lab连接Google Drive等服务,极大得提升生产力
JupyterLab安装
首先进入docker相应的container,执行:

$ docker exec -it jupyterhub bash

然后安装JupyterLab,执行:

pip install jupyterlab

要想在JupyterHub使用JupyterLab还需要安装个插件,执行下面的命令进行安装:

jupyter labextension install @jupyterlab/hub-extension
这里可能会提示ValueError: Please install nodejs >=12.0.0 before continuing. 此时依次执行如下步骤再安装插件即可:
node --version # 查看当前版本
npm cache clean -f # 清楚缓存
npm install -g n # 获取版本管理工具
n stable # 获取最新稳定版本

配置JupyterHub使用JupyterLab
修改jupyterhub_config.py文件中的

c.Spawner.cmd = ['jupyterhub-singleuser']

c.Spawner.cmd = ['jupyter-labhub']

然后重启服务即可。

多用户JupyterHub登录
登录认证方式
当我们需要考虑JupyterHub为多用户服务时,首先考虑用户的认证问题。
JupyterHub默认采用PAMAuthenticator认真授权:

c.JupyterHub.authenticator_class = 'jupyterhub.auth.PAMAuthenticator'

PAM这个授权方式是服务器用户的登录认证方式,比如当我们在服务器追加一个用户user,就可以配置允许这个用户登录。
当然JupyterHub也支持别授权方式,比如接入GitHub、Google的OAuth、LDAP、RemoteUser等认证。
登录用户控制
JupyterHub支持多用户登录,对于用户登录的控制也提供多种方式:

用户黑名单控制 – c.Authenticator.blacklist
写在黑名单的用户会被限制登录。如配置:c.Authenticator.whitelist = { ‘user1’ },则user1就不能登录了。
用户白名单控制 – c.Authenticator.whitelist
写在白名单的用户才能登录。如配置:c.Authenticator.whitelist = { ‘user1’ },则只有user1能登录。该项优先级高于黑名单。
管理员用户 – c.Authenticator.admin_users
管理员用户可以查看登录的用户,某些授权方式下可以添加/删除用户,可以重启或停止Hub,可以停止其他用户的服务,如果有配置的话还可以访问其用户的内容。
用户组白名单 – c.LocalAuthenticator.group_whitelist
如果是采用默认的基于本地用户的授权方式,还能够通过用户组白名单来进行授权。如果配置了这项,用户白名单会失效。

c.Authenticator.whitelist是配置控制用户登录的配置项,默认不限制任何用户登录。如果有配置内容,则限制只有配置的这些用户可以登录。如:c.Authenticator.whitelist = { ‘user1’ },则只有user1能登录。

现在我们在之前的基础上追加用户user1 和 user2

c.Authenticator.whitelist = set(['user1' , 'user2'])

设置user1和user2用户的账户密码,此时刷新admin账户jupyterhub,我们可以看到多用户已经更新为:

此时登录user1用户并点击user1的access server

提示Authorize access授权访问:


点击Token可以进行配置


如果配置可访问则我们在jupyterhub用户中可以直接读写user1的文件,否则提示没有权限:


jupyterHub支持GPU
Docker内无法使用GPU,也就是说docker下的 jupyterHub无法支持tensor flow GPU,如果想在docker下的jupyterHub中使用GPU需要安装nvidia docker

# 如果安装 nvidia-docker 1.0,需要先删除它以及所有存在的GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker# 添加相关包存储库
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update# 安装nvidia-docker2 ,重新加载Docker daemon配置
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd# 拉取最新的官方CUDA镜像检测nvidia-smi
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

完~
本文转载自 https://blog.csdn.net/weixin_39860046/article/details/112000403

jupyterHub安装,docker安装JupyterHub,JupyterLub,配置JupyterHub使用JupyterLab相关推荐

  1. 尚硅谷Docker实战教程-笔记02【安装docker、镜像加速器配置】

    尚硅谷大数据技术-教程-学习路线-笔记汇总表[课程资料下载] 视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01[理念简介 ...

  2. centos7安装docker安装rabbitmq(2021)亲测有效!!!

    centos07 首先创建个虚拟机 检查是否能ping www.baidu.com docker安装 在能ping同百度的前提下 安装docker 安装docker yum install docke ...

  3. ubuntu安装docker详细教程以及配置阿里云镜像加速

    ubuntu环境: Distributor ID: Ubuntu Description:    Ubuntu 16.04.2 LTS Release:        16.04 Codename: ...

  4. 搭建宝塔面板 安装docker 安装青龙面板及xdd-plus机器人 对接诺兰等教程

    一 .宝塔安装 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0. ...

  5. CentOS7.6安装docker安装青龙

    1.检查你的CentOS版本 cat /etc/redhat-release 1.用yum更新升级. yum clean all yum update -y 2.重启服务器 reboot 3.设置存储 ...

  6. OpenOffice4: 软件包安装, Docker安装,集成SpringBoot应用

    软件包安装 1. 说明 本文档采用rpm包方式安装,操作系统为centos 2 下载openoffice rpm包 创建源码包存放目录 mkdir /usr/local/src/openofficec ...

  7. docker宿主机IP及安装docker安装ping

    docker安装ping apt-get update apt install iputils-ping 查询docker宿主机IP 宿主机使用ifconfig docker0 就是宿主机IP,容器内 ...

  8. 2019最新在windows10下 安装docker 使用kitematic并且配置nginx+php环境

    首先先在windows10上新建2个文件夹.用来挂载nginx 和php的网站以及其他配置文件 H:\docker\nginx H:\docker\php 首先下载最新版本的kitematic  下载 ...

  9. docker containerd.io、docker-ce、docker-ce-cli的区别(docker版本安装docker安装方法)(Docker CE和Docker EE,docker.io)

    文章目录 20230207 docker两种版本以及apt安装方法 docker社区版 docker-ce docker-ce-cli containerd.io(docker 官方维护) docke ...

  10. 宝塔安装docker 安装pip

    curl -O https://bootstrap.pypa.io/pip/2.7/get-pip.py pip install --ignore-installed docker==2.7

最新文章

  1. 不以英语为中心,百种语言互译,FB开源首个单一多语言MT模型
  2. Java 转型问题(向上转型和向下转型)
  3. oracle批次处理数据_Oracle大批量删除数据方法(转)
  4. ios开发(6)uiimageView
  5. 夯实基础——P2084 进制转换
  6. jquery、javascript实现(get、post两种方式)跨域解决方法
  7. Pashmak and Parmida's problem(树状数组)
  8. php正则表达式 什么,php正则表达式是什么?(代码实例)
  9. cad工具箱详细讲解_cad学院派工具箱(cad绘图教程配解析)V20160804 最新版
  10. CWMP\TR069协议学习随笔1——入门基础知识及环境搭建
  11. 飞盘比赛(入门oj Problem 5961)
  12. 完整安装PX4/PX4-Autopilot,无需科学上网。
  13. 新手测试周报范文_作为新手自动化测试人员,我应该避免的14个错误
  14. 什么是三次握手和四次握手
  15. 赛车编程用c语言,钟神赛车 (C++代码)自己AC了都觉得搞笑
  16. docker笔记之部署安装
  17. 【Java分享客栈】我有一个朋友,和前端工程师联调接口被狠狠鄙视了一番。
  18. CoolEdit入门教程【转载】
  19. volatile 与处理器的嗅探技术
  20. 关于历史电影电视剧的吐槽

热门文章

  1. 编程小白的计算机毕业设计指导开发教程-JSP+Servlet实现注册登陆功能
  2. 多线程爬取zxcs.me【代码记录】
  3. Taro小程序 生成二维码
  4. 原达摩院大模型 M6 带头人杨红霞离职!
  5. ARP地址解析的过程
  6. 移动端 —— 微信二维码生成、授权登陆,展示用户信息页
  7. 桥接模式-绘画与展览
  8. where、having之间的区别和用法
  9. Ymodem下载协议
  10. C# .net DateTime.Now.ToString() 年月日时分秒格式化大全