You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker Compose中配置JupyterLab的argon哈希密码?

解决JupyterLab Docker Compose配置哈希密码无效的问题

正确的Compose配置写法

直接在command中用数组形式传递参数,并转义哈希值里的$符号(Docker Compose YAML会将$视为变量引用,必须转义):

services:
  jupyter:
    container_name: jup
    image: quay.io/jupyter/scipy-notebook:latest
    ports:
      - 8888:8888
    restart: unless-stopped
    environment:
      - TZ=Australia/Sydney
    command:
      - start-notebook.py
      - --PasswordIdentityProvider.hashed_password=argon2:$$argon2id$$v=19$$m=10240,t=10,p=8$$dRrGNTESTDATAdKLm+YVjQ$$FbTESTDATAG66kyt4vw3/+TjrT5jYtYXhy+v5QX0HY4
    volumes:
      - ./work:/home/joyvan/work

关键注意点

  1. 参数拆分:command必须用数组形式,把start-notebook.py和后面的密码参数拆成两个独立元素,不能写成单条字符串(之前的写法错误地将命令和参数混为一个字符串,导致容器无法正确解析)。
  2. 转义$符号:哈希值中的所有$都要替换成$$,否则YAML解析器会把$后面的内容当作环境变量,导致哈希值缺失或损坏。
  3. 无需额外引号:数组形式下直接写参数即可,不需要用单引号或双引号包裹哈希值,避免引入额外的解析问题。

备选方案:使用明文密码自动生成哈希

如果不想手动处理哈希值,可以设置JUPYTER_PASSWORD环境变量(明文),容器启动时会自动将其转换为argon2哈希并保存:

services:
  jupyter:
    # ...其他配置不变
    environment:
      - TZ=Australia/Sydney
      - JUPYTER_PASSWORD=你的明文密码

这种方式无需处理哈希转义,重建容器时密码也会自动生效。

内容的提问来源于stack exchange,提问作者Hugh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:58:27