jupyterhub的淺淺使用-重點在解決無法登錄

jupyterhub的淺淺使用-重點在解決無法登錄

  • jupyterhub的淺淺使用-重點在解決無法登錄
    • 1、jupyterhub是什么
    • 2、創建Dockerfile
    • 3、啟動容器
      • 3.1、生成配置文件`jupyterhub --generate-config`
      • 3.2、運行容器
      • 3.3、進入容器配置用戶密碼
      • 3.4、訪問`127.0.0.1:8000`并登錄
    • 4、后臺創建的用戶無法訪問hub問題
    • 5、api使用
      • 5.1 在web頁面生成token,并保存
      • 5.2 使用token調用api

參考:https://mp.weixin.qq.com/s/jxTqlk0NXFcn-RPonQfsYg

jupyterhub的淺淺使用-重點在解決無法登錄

無意中需要搭建一下jupyterhub,這個之前也沒聽說過,之前只聽說過jupyter notebook,當然也沒咋用過。

1、jupyterhub是什么

在這里插入圖片描述

  • 專為公司、教室和研究實驗室設計的筆記本電腦的多用戶jupyter notebook版本
  • 我的理解就是:公用一套python環境,支持多用戶jupyter notebook。類似和一臺服務器虛擬化成眾多虛擬機一樣的概念。

2、創建Dockerfile

FROM quay.io/jupyterhub/jupyterhub:latest
RUN apt update &&  apt install vim net-tools lsof -y
RUN pip install jupyterhub-idle-culler jupyter_server jupyterlab

構建 docker build -t jupyterhub:1.0.0 .

3、啟動容器

3.1、生成配置文件jupyterhub --generate-config

然后終端執行下面命令創建jupyterhub_config.py配置文件:

jupyterhub --generate-config -f /etc/jupyterhub/jupyterhub_config.py

執行完上述操作,在/etc/jupyterhub路徑下會生成一個名為jupyterhub_config.py
的文件,使用vim或者nano等文本編輯工具打開jupyterhub_config.py文件

追加配置

import sys
c.Authenticator.allowed_users = {'root','admin'}
c.Authenticator.admin_users = {'root','admin'}  # 管理員用戶
# 管理員是否有權在各自計算機上以其他用戶身份登錄,以進行調試,此選項通常用于 JupyterHub 的托管部署,以避免在啟動服務之前手動創建所有用戶
c.JupyterHub.admin_access = True
c.PAMAuthenticator.open_sessions = False # 解決多用戶同時登錄問題。
c.Spawner.args = ['--allow-root']  # 允許root用戶使用
c.LocalAuthenticator.create_system_users = True  # 允許創建其他用戶
c.Spawner.notebook_dir = '~'  # 設置工作目錄
c.Spawner.default_url = '/lab'c.JupyterHub.extra_log_file = '/etc/jupyterhub/jupyterhub.log' # 指定額外的日志
c.JupyterHub.pid_file='/etc/jupyterhub/jupyterhub.pid' # 指定pid文件位置
c.JupyterHub.db_url='/etc/jupyterhub/jupyterhub.sqlite' # 指定數據庫文件位置
c.JupyterHub.cookie_secret_file='/etc/jupyterhub/jupyterhub_cookie_secret'  # 指定cookie_secret文件位置
c.ConfigurableHTTPProxy.pid_file='/etc/jupyterhub/jupyterhub-proxy.pid' # 設置proxy.pid文件位置# 設置用戶一小時內無使用則關閉jupyterlab服務
c.JupyterHub.services = [{'name': 'idle-culler','command': [sys.executable, '-m', 'jupyterhub_idle_culler', '--timeout=1800'],}
]c.JupyterHub.load_roles = [{"name": "list-and-cull",  # name the role"services": ["idle-culler",  # assign the service to this role],"scopes": [# declare what permissions the service should have"list:users",  # list users"read:users:activity",  # read user last-activity"admin:servers",  # start/stop servers],}
]

3.2、運行容器

docker run -itd --hostname=jupyterhub \
-v /etc/jupyterhub:/etc/jupyterhub \
--name=jupyterhub-new -p 8000:8000 jupyterhub:1.0.0 \
jupyterhub --ip 0.0.0.0 -f /etc/jupyterhub/jupyterhub_config.py

3.3、進入容器配置用戶密碼

默認hub使用的是PAM的認證,需要linux用戶的賬號和密碼。因為容器里面沒有用戶的密碼,所以需要創建

  • 創建用戶useradd -m user_name
  • 創建密碼paaawd user_name

hub支持的認證如下:
在這里插入圖片描述

3.4、訪問127.0.0.1:8000并登錄

使用admin或者root登錄成功【注意要操作上一步驟的給root設置密碼,創建admin用戶和密碼】

4、后臺創建的用戶無法訪問hub問題

在linux后臺使用

  • 創建用戶useradd -m user_name
  • 創建密碼paaawd user_name

后在web上無法登錄。
解決:需要在hub的web頁面上創建用戶,然后在容器中使用paaawd user_name配置密碼,才能在web頁面登錄。猜測這個是DB的原因。
在這里插入圖片描述

5、api使用

API文檔: https://jupyterhub.readthedocs.io/en/stable/reference/rest-api.html

5.1 在web頁面生成token,并保存

5.2 使用token調用api

注意換成你的token。

  • 調用
curl -X GET -H "Authorization: token 8a14793766e74b8ab48669f87d4b31b7" http://127.0.0.1:8000/hub/api/user
  • 返回
{"pending": null,"server": "/user/tom1/","admin": false,"groups": [],"roles": ["user"],"last_activity": "2025-05-28T09:52:30.195982Z","name": "tom1","created": "2025-05-28T08:33:38.295913Z","kind": "user","servers": {"": {"name": "","full_name": "tom1/","last_activity": "2025-05-28T09:50:54.605630Z","started": "2025-05-28T08:35:56.168903Z","pending": null,"ready": true,"stopped": false,"url": "/user/tom1/","user_options": {},"progress_url": "/hub/api/users/tom1/server/progress","full_url": null,"full_progress_url": null}},"token_id": "a8","session_id": null,"scopes": ["access:servers!user=tom1","delete:servers!user=tom1","read:servers!user=tom1","read:shares!user=tom1","read:tokens!user=tom1","read:users!user=tom1","read:users:activity!user=tom1","read:users:groups!user=tom1","read:users:name!user=tom1","read:users:shares!user=tom1","servers!user=tom1","tokens!user=tom1","users:activity!user=tom1","users:shares!user=tom1"]
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83786.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83786.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83786.shtml

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

相關文章

【Bitcoin基礎】比特幣的地址格式有哪些?如何應用?

比特幣地址格式的分類及應用場景 比特幣地址是用于接收和發送比特幣的標識符,主要有以下幾種格式,每中類型都有其特定的用途和特點: 比特幣地址格式 P2PKH 1xxxx leagcy地址 P2SH 3xxxx 允許更復雜的交易多重簽名 bech32 bc1xxxx bech32mP2TR…

3.1.2_棧的順序存儲實現

知識總覽: 順序棧的定義: 順序棧是用順序存儲實現的 ,代碼定義方式和順序表類似(啥是順序表來著???) 定義一個順序棧struct結構體SqStack,結構體中有靜態數組data來存放棧里邊的元素1個int型的…

JavaEE初階第一期:計算機是如何 “思考” 的(上)

專欄:JavaEE初階起飛計劃 個人主頁:手握風云 一、馮諾依曼體系結構 1.1. 概念 馮諾依曼體系結構(Von Neumann Architecture),是現代計算機的基礎設計概念,核心思想是“存儲程序控制”。具體來說&#xff0c…

SQL Server全局搜索:在整個數據庫中查找特定值的高效方法

SQL Server全局搜索:在整個數據庫中查找特定值的高效方法 一、需求背景:為什么需要數據庫全局搜索? 在數據庫管理和開發過程中,我們經常會遇到這樣的場景: 只記得某個數據值,但忘記了它所在的表或列需要…

萬物皆數:構建數字信號處理的數學基石

萬物皆數:構建數字信號處理的數學基石 歡迎來到數字信號處理(DSP)的世界。在這里,聲音、圖像、通信信號、醫療數據……一切信息都被轉化為一串串冰冷的數字。然而,正是通過對這些數字的精妙運算,我們得以實…

到院率最高提升40%,消費醫療用AI營銷機器人跑贏增長焦慮

當前,消費醫療機構普遍依賴人工咨詢師進行客戶接待和營銷咨詢。然而,專業咨詢師缺口高達20萬人,大量“護士轉咨詢”“銷售轉咨詢”現象導致方案設計專業性不足,客戶投訴率提升40%。人工客服不僅醫學知識薄弱,學習能力有…

【推薦算法】注意力機制與興趣演化:推薦系統如何抓住用戶的心?

注意力機制與興趣演化:推薦系統如何抓住用戶的心? 一、算法背景知識:從靜態推薦到動態感知1.1 傳統推薦系統的局限性1.2 人類注意力機制的啟示 二、算法理論/結構:動態興趣建模革命2.1 DIN(深度興趣網絡)&a…

快速入門:創建 Azure 數據資源管理器群集和數據庫

前言 Azure 數據資源管理器是 Microsoft 提供的一項快速、完全托管的數據分析服務。 它允許用戶分析來自應用程序、網站、物聯網設備等的海量數據流,從而簡化復雜的數據探索。 它能夠處理數 PB 的數據,并支持快速檢索數據以進行分析。 主要特點 高性能:ADX 針對快速數據提…

Redis集群模式之Redis Cluster(2)

上篇文章我們講解了Redis Cluster中的主要模塊和兩種重定向方式,這篇文章我們來講解一下Redis Cluster的狀態監測和維護。 Redis Cluster狀態監測及維護 要講解Redis Cluster中節點的狀態如何維護,我們要先知道Redis Cluster中的節點有哪些狀態&#xf…

Step-Audio-AQAA 解讀:邁向「純語音」交互的端到端 LALM 新里程

引言:AI 從聽到說 大型音頻語言模型(Large Audio-Language Models, LALMs)正在徹底改變我們與機器交互的方式。我們不再滿足于簡單的文本問答,而是期望 AI 能夠像人類一樣,通過自然的語音進行交流,理解我們的意圖,并以富有表現力的聲音回應。然而,構建一個能夠直接從語…

基于邊緣計算的絲桿狀態實時監測系統設計?

基于邊緣計算的絲桿狀態實時監測系統設計,可從系統架構、各層功能設計、關鍵技術應用等方面入手,以下為詳細介紹: 系統架構設計 基于邊緣計算的絲桿狀態實時監測系統通常由感知層、邊緣層和云端三部分組成。感知層負責數據采集,…

LeetCode 每日一題 2025/6/9-2025/6/15

記錄了初步解題思路 以及本地實現代碼;并不一定為最優 也希望大家能一起探討 一起進步 目錄 6/9 440. 字典序的第K小數字6/10 3442. 奇偶頻次間的最大差值 I6/11 3445. 奇偶頻次間的最大差值 II6/12 3423. 循環數組中相鄰元素的最大差值6/13 2616. 最小化數對的最大…

PyTorch張量操作中dim參數的核心原理與應用技巧:

今天在搭建神經網絡模型中重寫forward函數時,對輸出結果在最后一個維度上應用 Softmax 函數,將輸出轉化為概率分布。但對于dim的概念不是很熟悉,經過查閱后整理了一下內容。 PyTorch張量操作精解:深入理解dim參數的維度規則與實踐…

Day 31

1. 規范的文件命名 核心原則: 清晰明確:文件名應準確描述內容(如data_preprocessing.py) 風格統一: 推薦小寫下劃線(Python慣例,如model_training.py) 或使用駝峰式&#xff08…

學習Oracle------認識VARCHAR2

學習Oracle------認識VARCHAR2 VARCHAR2 是 Oracle 數據庫中專門用于存儲可變長度字符串的數據類型,它是 Oracle 對標準 SQL 數據類型 VARCHAR 的增強和替代。以下是全面解析: 核心概念 名字含義: VAR Variable(可變&#xff09…

記錄jackson解析出錯

Jackson 屬性名大小寫 Bug 記錄 問題描述 在前后端交互過程中,前端傳遞的 JSON 字段名為駝峰風格(如 qTitle),后端 Java 實體類字段名也為駝峰(如 private String qTitle;)。 但在反序列化時,…

泰國數碼電商系統定制|3C產品詳情泰語化+售后管理,適配泰國數碼零售

隨著全球數字化的加速,電商行業正在迅速發展,尤其是以泰國為代表的東南亞市場。泰國不僅是一個擁有龐大消費者群體的市場,而且其日益增長的互聯網使用率和手機普及率使得數碼產品的銷售潛力巨大。在這樣的大背景下,針對泰國市場的…

59、定制化原理-SpringBoot定制化組件的幾種方式

59、定制化原理-SpringBoot定制化組件的幾種方式 在Spring Boot中,定制化組件的方式多樣,以下是幾種常見的方法及其原理: #### 修改配置文件 通過修改application.properties或application.yml文件,利用ConfigurationProperties注…

機器學習--分類

陽性(Positive)和陰性(Negative) 陽性(Positive) 正類:通常指的是我們關注的類別或事件;陰性(Negative) 負類: 指的是與陽性相反的類別或事件。…

三星MZQL2960HCJR-00BAL高性能固態硬盤控制器SSD云計算和高端存儲專用 電子元器件解析

MZQL2960HCJR-00BAL 電子元器件解析 1. 基本類型與功能 MZQL2960HCJR-00BAL 是 三星(Samsung) 推出的一款 企業級NVMe SSD主控芯片,屬于 高性能固態硬盤控制器,專為 數據中心、云計算和高端存儲 設計。 關鍵特性: 接…