基于 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.pswp.cn/bicheng/89918.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89918.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89918.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

常見的萬能密碼

目錄 1. 通用SQL注入 2. 登錄繞過 3. 密碼重置 1. 通用SQL注入 or 11-- " or 11-- or aa " or "a""a or 11# " or 11# or 11/* " or 11/* or 11 " or "1""1 2. 登錄繞過 admin-- admin or 11-- admin or aa …

04訓練windows電腦低算力顯卡如何部署pytorch實現GPU加速

大多數人用的電腦的顯卡配置可能沒有那么強,也就是說,我們很難享受到最新版本pytorch給我們帶來的模型訓練的速度和效率,為此,我們需要想辦法在現有顯卡情況下部署應用pytorch。 筆者有一臺電腦,顯卡算力很低,那么以該電腦為例,為大家介紹如何部署應用pytorch功能。 1…

PPT科研畫圖插件

PPT科研畫圖插件 iSlide- 讓PPT設計簡單起來 | PPT模板下載平臺iSlide - 簡單&#xff0c;好用的PPT插件&#xff01;擁有30萬 原創可商用PPT模板&#xff0c;PPT主題素材&#xff0c;PPT案例&#xff0c;PPT圖表&#xff0c;PPT圖示&#xff0c;PPT圖標&#xff0c;PPT插圖和8…

CSS實現背景圖片漸變透明

復合寫法background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #FFF 82.5%),url(https://example.com/image.jpg) center / cover no-repeat;參數說明&#xff1a;linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #FFF 82.5%)創建從下至上的垂直漸變&#xff…

基于pyside6的通用機器人遙控控制界面

1. 前言 這兩天需要幫一個朋友做一個簡單的遙控控制界面&#xff0c;用于控制一臺復合機器人(萬向輪底盤機械臂旋轉云臺)&#xff0c;在這里分享一下 2. 開發框架 由于朋友那邊的控制接口都是使用python來寫的&#xff0c;所以我這里也使用py來完成這個遙控界面的開發。但其…

【iOS】ZARA仿寫

【iOS】ZARA仿寫 文章目錄【iOS】ZARA仿寫前言首頁發現我的對姓名的更改總結前言 暑假第一個的任務仿寫ZARA 雖然不是特別難卻有很多小細節需要注意 首頁 點進程序出現的就是整個項目最主要的一個點&#xff0c;即首頁的無限輪播圖&#xff0c;不管是自動輪播還是手動滑動&a…

Kubernetes Pod 調度基礎

一、Replication Controller 和 ReplicaSet1、Replication ControllerReplication Controller&#xff08;復制控制器&#xff0c;RC&#xff09;RC 用來確保 Pod 副本數達到期望值&#xff0c;這樣可以確保一個或多個同類 Pod 總是可用的。如果存在的 Pod 數量大于設定的值&am…

菜鳥的C#學習(二)

文章目錄一、類的訪問1、普通類繼承抽象類2、普通類繼承抽象類&#xff0c;抽象類繼承接口&#xff0c;三者聯系二、類中方法的訪問2.1 抽象方法和虛方法2.2 虛方法和普通方法**1. 調用機制****2. 方法重寫****3. 設計意圖****4. 性能差異****5. 語法對比表****總結&#xff1a…

04 51單片機之數碼管顯示

文章目錄1、前言2、數碼管3、單個數碼管引腳定義3-1、單個共陰極3-2、單個共陽極3-3、單個數碼管引腳定義4、四位一體數碼管引腳定義4-1、四位一體共陰極數碼管4-2、四位一體共陽極數碼管4-3、四位一體數碼管引腳定義5、數碼管原理圖6、C51數組&#xff08;補充知識點&#xff…

【LLM】OpenRouter調用Anthropic Claude上下文緩存處理

背景 在使用OpenRouter調用Anthropic Claude大模型時&#xff0c;部分模型支持上下文緩存功能。當緩存命中時&#xff0c;調用成本會顯著降低。雖然像DeepSeek這類模型自帶上下文緩存機制&#xff0c;但本文主要針對構建Agent場景下&#xff0c;需要多次調用Anthropic Claude時…

【C++】第十七節—二叉搜索樹(概念+性能分析+增刪查+實現+使用場景)

好久不見&#xff0c;我是云邊有個稻草人 《C》本文所屬專欄—持續更新中—歡迎訂閱 目錄 一、二叉搜索樹的概念 二、二叉搜索樹的性能分析 三、二叉搜索樹的插入 SearchBinaryTree.h test.cpp 四、?叉搜索樹的查找 【只有一個3】 【有多個3】 五、?叉搜索樹的刪除…

Redis都有哪些數據結構,使用場景與原理解析

? String&#xff1a;字符串&#xff08;最常用、最簡單的類型&#xff09;&#x1f4cc; 應用場景&#xff1a;計數器&#xff08;如&#xff1a;頁面瀏覽量、點贊數、轉發數等&#xff09;緩存單個值&#xff08;如&#xff1a;token、驗證碼、用戶昵稱&#xff09;分布式鎖…

將EXCEL或者CSV轉換為鍵值對形式的Markdown文件

# 創建命令行參數解析器parser argparse.ArgumentParser(description將 CSV 或 Excel 文件轉換為帶標頭的 Markdown 格式)# 必需參數parser.add_argument(input_file, help輸入文件路徑 (CSV 或 Excel))parser.add_argument(output_file, help輸出 Markdown 文件路徑)# 可選參…

MySQL 配置性能優化實操指南:分版本5.7和8.0適配方案

在 MySQL 性能優化中&#xff0c;不同版本的特性差異會直接影響優化效果。本文基于 MySQL 5.7 和 8.0 兩個主流版本&#xff0c;通過版本適配的配置代碼、場景舉例和通俗解釋&#xff0c;讓優化方案更精準落地。一、硬件與系統配置優化&#xff08;基礎層優化&#xff09;1. 服…

【STM32實踐篇】:串口通信

文章目錄1. 串行通信與并行通信2. 異步通信與同步通信3. 單工&#xff0c;半雙工和全雙工通信4. 通信速率和接口標準5. USART 結構框圖6. 串口電路6.1 串口之間的連接6.2 串口與 RS232 的轉換和連接6.3 串口與 RS485 的轉換和連接6.4 串口與 USB 的轉換和連接7. USART 字符說明…

Trae IDE評測體驗:通過 MCP Server - Figma AI Bridge 一鍵將 Figma 轉為前端代碼

Trae IDE評測體驗&#xff1a;通過 MCP Server - Figma AI Bridge 一鍵將 Figma 轉為前端代碼 在現代前端開發中&#xff0c;從設計稿到可用頁面的交付往往需要大量重復勞動&#xff1a;切圖、手寫樣式、布局調整……而借助 MCP Server - Figma AI Bridge&#xff0c;我們可以…

文獻閱讀 250715-Atmospheric rivers cause warm winters and extreme heat events

Atmospheric rivers cause warm winters and extreme heat events 來自 <Atmospheric rivers cause warm winters and extreme heat events | Nature> ## Abstract: Definition: Atmospheric rivers (ARs) are narrow regions of intense water vapour transport in the …

線上協同辦公時代:以開源AI大模型等工具培養網感,擁抱職業變革

摘要&#xff1a;在提倡線上協同辦公的時代背景下&#xff0c;職場人需迅速提升工作能力以適應職業變革。培養網感成為時代所需&#xff0c;它為快速連接時代奠定基礎。本文深入探討了開源AI大模型、AI智能名片、S2B2C商城小程序源碼等工具在培養網感過程中的重要作用&#xff…

Netty網絡聊天室及擴展序列化算法

一、前言Netty是一個基于Java的高性能、事件驅動的網絡應用框架&#xff0c;廣泛應用于各種網絡通信場景。本文將介紹如何使用Netty構建一個簡單的網絡聊天室&#xff0c;并擴展序列化算法來提高數據傳輸效率和靈活性。二、Netty網絡聊天室的實現1. 項目結構我們將使用Maven構建…

基于單片機金沙河糧倉環境監測系統設計與實現

摘 要 本文圍繞基于單片機的金沙河糧倉環境監測系統展開設計與實現研究。系統以單片機為核心&#xff0c;集成 DHT11、MQ - 135 等傳感器&#xff0c;可實時精準監測糧倉溫濕度、氣體成分等關鍵環境參數。借助 LoRa、ESP8266 實現數據的可靠傳輸與遠程通信 &#xff0c;OLED 屏…