使用Docker安装JupyterHub

安装JupyterHub

拉取Jupyter镜像并运行容器

bash 复制代码
docker run -d -p 8000:8000 --name jupyterhub jupyterhub/jupyterhub jupyterhub
# -d:后台运行
# -p 8000:8000:宿主机的8000端口映射容器中的8000端口
# --name jupyterhub:给运行的容器起名叫jupyterhub
# jupyterhub/jupyterhub:镜像名,本机没有会自动从dockerhub上拉取最新版本的jupyterhub

容器运行成功后进入容器

bash 复制代码
docker exec -it jupyterhub bash
# 进入容器后,下方操作都是在容器内进行的

生成jupyterhub的配置文件

bash 复制代码
jupyterhub --generate-config  # 默认在/srv/jupyterhub目录下生成jupyterhub_config.py文件

更新容器的apt并安装vim

bash 复制代码
apt-get update
apt install vim

升级/安装jupyterhub必须的组件库

bash 复制代码
pip install jupyterhub --upgrade -i https://mirrors.aliyun.com/pypi/simple
pip install notebook --upgrade -i https://mirrors.aliyun.com/pypi/simple

创建用户并设置密码

bash 复制代码
adduser lifan  # 这个用户就是登录JupyterHub的用户名
# 根据提示输入密码、电话号等,除了密码,其它的不想填写就直接回车

更改home目录权限

bash 复制代码
chmode -R 777 home  # 我最开始没有设置,一直报错,设置了就没事了
cd /home

创建家目录(正常应该自动生成,没生成的话手动创建)

bash 复制代码
mkdir lifan  # 文件夹与adduser创建的用户同名
chown lifan:lifan lifan -R  # 设置归属组

到此JupyteHub就可以使用创建用户登录了:http://127.0.0.1:8000

安装中文插件

界面是英文很不习惯,可以安装中文插件将界面汉化。

bash 复制代码
# 继续进到容器中
docker exec -it jupyterhub bash
# 安装中文库
pip install jupyterlab-language-pack-zh-CN -i https://mirrors.aliyun.com/pypi/simple

安装成功后回到http://10.168.1.249:8000/user/lifan/lab,刷新页面。

给用户赋予管理员权限

先看一下没有管理员权限的"Hub 控制面板":

继续进入容器操作,编辑配置文件

bash 复制代码
vim /srv/jupyterhub/jupyterhub_config.py  # 编辑配置文件
------------------增加如下内容------------------------------
c.Authenticator.admin_users = {'lifan'}  # 将用户lifan设置为管理员
c.Authenticator.create_system_users = True  # 允许从Hub页面创建用户

保存并退出配置文件,退出容器,重启容器

bash 复制代码
docker restart jupyterhub  # 重启容器

重新进入"Hub 控制面板",会发现多了一个"Admin":

添加用户

点击Add Users按钮,添加用户

看提示"以行为分隔,批量添加用户"

你会想,新增的用户密码是多少呢?其实我们还没有设置,继续进入容器

bash 复制代码
docker exec -it jupyterhub bash

passwd zhangsan  # 根据提示设置密码

尝试登录zhangsan用户

相关推荐
艾莉丝努力练剑4 分钟前
【QT】界面优化:QSS
linux·运维·开发语言·网络·qt·计算机网络·udp
岭锅锅5 分钟前
机房磁控U位资产管理系统:让数据中心资产管理告别粗放式运维
运维·机房·数据机房管理
煜36410 分钟前
进程控制知识
linux·运维·服务器
kishu_iOS&AI20 分钟前
Mac —— Docker Desktop(Milvus和Redis)部署
redis·docker·milvus
一池秋_23 分钟前
chroot-debian一键部署
android·容器·debian
AOwhisky28 分钟前
MySQL 学习笔记(第五期):用户管理与权限控制
linux·运维·数据库·笔记·学习·mysql
无限进步_38 分钟前
Linux进程创建——fork与vfork深度解析
linux·运维·服务器
梦想的颜色42 分钟前
Redis数据类型全解析:从底层原理到生产实战
运维·数据库·redis·缓存·高并发·分布式锁·数据类型
草莓熊Lotso43 分钟前
【Linux网络】深入理解传输层 UDP 协议:从底层原理到实战应用
linux·运维·服务器·c语言·网络·c++·udp
国科安芯1 小时前
商业航天级抗辐照全双工RS-485/RS-422收发器ASM491S2Y的技术特性与应用研究
运维·网络·单片机·嵌入式硬件·安全·架构·安全性测试