当前位置: 首页 > news >正文

基于 Docker 环境的 JupyterHub 详细部署手册

本文详细介绍基于Docker Compose的单机版JupyterHub部署方案,通过容器化技术实现多用户Notebook环境的快速搭建。方案采用官方JupyterHub镜像,配置11个端口映射(18000-18010)支持用户并发,通过数据卷挂载(./data、./home)保障配置与用户数据持久化。核心步骤包括:升级核心组件及安装中文支持/Git集成等扩展;通过配置文件设定管理员权限与用户白名单;结合Web控制台与Linux命令实现用户可视化管理和密码初始化。该方案显著降低多用户协作环境运维成本,支持资源共享与隔离,适用于教学、科研及团队开发场景,实测可稳定承载20+用户并发。

一、环境要求

  • 系统:Linux/Windows/macOS(需安装 Docker)
  • 依赖软件:Docker 20.10+和Docker Compose 2.0+
  • 网络:开放端口 18000-18010(可通过防火墙配置)

二、部署步骤

1. 创建项目目录

mkdir jupyterhub-deploy && cd jupyterhub-deploy
mkdir data home  # 创建数据持久化目录

2. 创建 Docker Compose 文件

创建 docker-compose.yml:

version: '3.5'
services:jupyterhub:image: jupyterhub/jupyterhub:latestrestart: alwaysports:- "18000:8000"   # JupyterHub 主端口- "18001:8001"   # 预留扩展端口- "18002:8002"   # 预留扩展端口- "18003:8003"   # 预留扩展端口- "18004:8004"   # 预留扩展端口- "18005:8005"   # 预留扩展端口- "18006:8006"   # 预留扩展端口- "18007:8007"   # 预留扩展端口- "18008:8008"   # 预留扩展端口- "18009:8009"   # 预留扩展端口- "18010:8010"   # 预留扩展端口volumes:- ./data:/data    # 配置持久化- ./home:/home    # 用户数据持久化

端口说明:

  • 18000:Web 访问端口

  • 18001-18010:预留给 JupyterLab 的 Kernel 连接

3. 启动容器

docker-compose up -d  # 后台启动服务

4. 进入容器终端

docker-compose exec jupyterhub /bin/bash

5. 安装基础工具(在容器内执行)

apt-get update && \
apt-get install -y telnet iputils-ping nano git curl wget

6. 升级核心组件(在容器内执行)

pip install jupyterhub --upgrade -i https://mirrors.aliyun.com/pypi/simple
pip install notebook --upgrade -i https://mirrors.aliyun.com/pypi/simple

7. 安装扩展插件

pip install jupyterlab-language-pack-zh-CN -i https://mirrors.aliyun.com/pypi/simple # 中文语言包
pip install jupyterlab-git -i https://mirrors.aliyun.com/pypi/simple # Git 集成
pip install xeus-python -i https://mirrors.aliyun.com/pypi/simple # 增强Python内核
pip install debugpy -i https://mirrors.aliyun.com/pypi/simple # 调试支持
pip install ipdb -i https://mirrors.aliyun.com/pypi/simple # 交互式调试

8. 生成配置文件

jupyterhub --generate-config -f /data/jupyterhub_config.py
ln -s /data/jupyterhub_config.py .

配置说明: 配置文件保存在主机 ./data 目录,容器重启不丢失

9. 修改配置文件

编辑 /data/jupyterhub_config.py:

c.JupyterHub.cookie_secret_file = "/data/jupyterhub_cookie_secret"
c.Authenticator.allowed_users = {"admin"}    # 允许访问的用户
c.Authenticator.admin_users = {"admin"}      # 管理员账号
c.LocalAuthenticator.create_system_users = True

10. 创建管理员账户

adduser admin  # 设置密码(示例:123456),其他信息按回车跳过

11. 重启服务

exit # 退出容器
docker-compose restart # 重启容器

三、用户管理

1. 添加新用户

  • 访问 http://<服务器IP>:18000 用 admin 登录
  • 进入 File > Hub Control Panel > Admin > Add Users(输入用户名如 test)

2. 设置用户密码

docker-compose exec jupyterhub  passwd test  # 为 test 用户设置密码

四、访问服务

  • 管理员登录:http://<服务器IP>:18000 → 用户 admin + 密码
  • 工作区:登录后自动进入 JupyterLab 环境
  • 语言切换:Settings → Language → 简体中文

五、维护命令

功能命令
启动服务docker-compose up -d
停止服务docker-compose down
查看日志docker-compose logs -f

六、故障排除

  • 端口冲突:修改 docker-compose.yml 中的端口映射
  • 登录失败:检查 jupyterhub_config.py 中的用户配置
  • 插件未生效:在容器内重新执行 pip install 命令
  • 数据持久化:确保主机目录 ./home 和 ./data 有写入权限
http://www.lryc.cn/news/589797.html

相关文章:

  • 论文导读--PQ3D:通过分段级分组实现多模态特征融合和 MTU3D:在线查询表示学习与动态空间记忆
  • cell2location复现
  • xss-labs练习
  • Android-EDLA【CTS】CtsTetheringTest存在fail
  • 探究Netty 4.2.x版本
  • 动态规划题解——分割等和子集【LeetCode】
  • Spring Boot 整合 Nacos 实战教程:服务注册发现与配置中心详解
  • docker的搭建
  • 导入无人机航拍屋顶,10分钟智能铺设光伏板
  • RICE-YOLO:基于改进YOLOv5的无人机稻穗检测新方法
  • 分布式缓存击穿以及本地击穿解决方案
  • 【tower】Rust tower库原理详解以及axum限流实战
  • 硅基计划2.0 学习总结 玖 图书管理系统 初版
  • 推荐《Python 编程:从入门到实践》之Python编程的基础知识
  • FastStone Capture (屏幕截图)v10.9 汉化版
  • 本地部署分布式系统服务发现与配置管理Consul,并实现无公网IP简单操作让外部访问
  • FATFS文件系统原理及其移植详解
  • Elasticsearch+Logstash+Kibana部署
  • iptables的配置与使用
  • Image 和 IMU 时间戳同步
  • 从零开发足球比分APP:REST API与WebSocket的完美搭配
  • MyBatis 之分页四式传参与聚合、主键操作全解
  • 现代人工智能综合分类:大模型时代的架构、模态与生态系统
  • 【电脑】显示器的基础知识
  • 消息转换器--通过此工具进行时间转换
  • Flask的基本概念
  • Ray集群部署与维护
  • Shor`s因子分解法——C语言实现
  • 实例操作:基于 PipeLine 实现 JAVA项目集成 SonarQube代码检测通知 Jenkins
  • 探索阿里云DMS:解锁高效数据管理新姿势