怎么禁止在jupyter-lab中访问外网以及设置登录密码

358 阅读1分钟

基于notebook 7.2.1,使用docker-compose启动

1. 设置登录密码

在python命令行执行:

from jupyter_server.auth.security import passwd
# 会提示输入密码
passwd
# 或者直接设置密码
passwd('its password')
➜  ~ python3
...
>>> from jupyter_server.auth.security import passwd
>>> passwd('its password')
'argon2:$argon2id$v=19$m=10240,t=10,p=......'

将生成的密码粘贴到文件jupyter_server_config.json中,文件内容:


{
    "ServerApp": {
      "password": "argon2:$argon2id$v=19$m=10240,t=10,p=......",
      "password_required": true,
      "allow_password_change": false
    }
}

最终jupyter_server_config.json需要挂载到/home/jovyan/.jupyter/jupyter_server_config.json

2. 禁止jupyter-lab中访问外部网络

需要创建一个network并设置com.docker.network.bridge.enable_ip_masquerade: 'false',如下:

networks:
  private:
    driver: bridge
    driver_opts:
      com.docker.network.bridge.enable_ip_masquerade: 'false'

最终应用在service中:

    networks:
      - private

3. 最终的docker-compose.yml

version: '3.8'

services:
  notebook:
    image: jupyter/base-notebook
    networks:
      - private
    ports:
      - "18888:8888"
    environment:
      - JUPYTER_ENABLE_LAB=yes
      - NB_USER=jovyan
    volumes:
      - ./jupyter_server_config.json:/home/jovyan/.jupyter/jupyter_server_config.json
    user: "1000:100"
networks:
  private:
    driver: bridge
    driver_opts:
      com.docker.network.bridge.enable_ip_masquerade: 'false'

通过执行docker-compose up启动测试。