Docker快速搭建JupyterNotebook指南

在Docker中安装并配置Jupyter Notebook(linux系统)

  1. 拉取官方镜像
    使用Jupyter官方科学计算镜像(包含常用库)或者使用自己常用的linux或者jupyter镜像,可以通过pip安装:

    docker pull jupyter/datascience-notebook
    
  2. 创建数据卷(持久化存储)
    在宿主机创建笔记本存储目录:

    mkdir -p ~/jupyter/notebooks
    
  3. 可选数据卷以及映射配置文件(可选,我一般在docker内部使用vim更改)
    这里选择映射文件,先获取一个标准文件作为外部映射
    执行后,配置文件会生成在 ~/jupyter-config/jupyter_notebook_config.py

    # 1. 创建配置文件目录
    mkdir -p ~/jupyter-config
    
    # 2. 生成配置文件(使用临时容器)
    docker run --rm \
      -v ~/jupyter-config:/home/xibin/.jupyter \
      jupyter/base-notebook \
      jupyter notebook --generate-config
  4. 然后再次运行一个容器挂载/jupyter-config/jupyter_notebook_config.py,就可以在宿主机直接修改容器内的jupyter配置文件了

    docker run -d \
      -p 8888:8888 \
      -v ~/jupyter-config:/home/xibin/.jupyter \
      -v "$PWD":/home/xibin/work \ #可选
      jupyter/base-notebook
  5. 如果不用docker映射,在非jupyter镜像的docker中或者在宿主机使用pip下载jupyter,首先更新pip

    pip install --upgrade pip
    # 更新pip
    
    pip install vim -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --default-timeout=3500
    # 使用阿里源下载
    

    pip的参数说明:
    -i http://mirrors.aliyun.com/pypi/simple/:表示使用阿里源
    --trusted-host mirrors.aliyun.com:用于指定信任的主机,允许从这些主机下载包而不验证 HTTPS 证书。解决ssl问题
    --default-timeout=3500:设置超时时间,防止下载超时

    pip install jupyter -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --default-timeout=3500 --root-user-action=ignore mediapipe
    # 使用阿里源
    
  6. 使用命令生成一份配置文件,会生成一个文件在/root/.jupyter/jupyter_notebook_config.py

    jupyter notebook --generate-config
    # 生成配置文件
    
  7. 编辑这个配置文件

    vim /root/.jupyter/jupyter_notebook_config.py# 生成配置文件
    # 使用下载的vim编辑
  8. 更改一些常用的配置:

    # 允许远程访问
    c.NotebookApp.allow_remote_access = True
    
    # 禁用浏览器自动打开
    c.NotebookApp.open_browser = False
    
    # 设置ip地址
    c.NotebookApp.ip = '0.0.0.0'
    
    # 设置工作目录(可选)
    c.NotebookApp.notebook_dir = '/home/jovyan/work'
    
    
  9. 如果是c.ServerApp.allow_root看下边

    # 允许远程访问
    c.ServerApp.allow_remote_access = True
    
    # 禁用浏览器自动打开
    c.ServerApp.open_browser = False
    
    # 允许root用户(可选)
    c.ServerApp.allow_root = True
    
    # 允许所有网络设备访问
    c.ServerApp.ip = ''
    
    # 设置工作目录
    c.NotebookApp.notebook_dir = '/workspace/work'
    
    # 设置容器端口号
    c.ServerApp.port = 9007
    
  10. 配置完毕后启动

    nohup jupyter-notebook --config=~/.jupyter/jupyter_notebook_config.py \
    --allow-root &
    
    # 参数说明:
    # --config=~/.jupyter/jupyter_notebook_config.py 代表使用指定目录的配置文件
    # --allow-root 表示在root 用户环境下启动,docker中经常需要加这个参数
    # nohup 后台持续运行jupyter并把日志输出到nohup.out
  11. 在nohup.out文件里查看或者没指定后台运行,会直接输出:

  12. 记住这个token,浏览器访问IP地址:9007,

  13. 复制刚刚的token,输入到Password or token后登陆

  14. 就可以创建新的notebook写代码了,受docker影响,只能访问挂载的目录,如果需要的话,需要在docker run的阶段指定--volume /path/:/docker/path/.

  15. 不想用token,可以在页面设置密码,更推荐在配置文件中设置:

    from notebook.auth import passwd
    hashed_password = passwd()
    print(hashed_password)

    新版jupyter导入方式变了:

    from jupyter_server.auth import passwd
    hashed_password = passwd()
    print(hashed_password)
  16. 将生成的密码输入到 ~/.jupyter/jupyter_notebook_config.py中的 c.NotebookApp.password或者c.ServerApp.password下

  17. 重启jupyter

        jupyter就可以正常使用了

<<本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系>> 

💡 提示:生产环境建议使用HTTPS,可通过Nginx反向代理添加SSL证书

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值