搭建 Jupyter Notebook 云端工作站

因为几个月前买了一台 iPad,而我发现 iPad 最大的问题就是无法编程,所以打算自己搭建一个 jupyter notebook 的远程服务器,云服务器使用的是阿里云。

我使用的是 Ubuntu 18.04 的镜像,对于其他 linux 服务器,可能也就是包管理器不一样而已。

  1. 远程连接 root 账户。

    无论是本地使用 SSH 还是去阿里云的网站都可,无所谓。

  2. 安装 pip3。

    1
    
    apt install python3-pip
    

    经测试,阿里云的 Ubuntu 18.04 自带 python3,但不带 pip3。

  3. 安装 jupyter 和一些其他想要使用的库。

    1
    2
    3
    
    pip3 install jupyter
    pip3 install matplotlib
    pip3 install sklearn
    
  4. 创建一个文件夹专门来放置 jupyter 的工作目录。

    1
    2
    3
    4
    5
    6
    
    cd /var/local
    mkdir jupyter
    cd jupyter
    mkdir home
    cd /var/log
    touch jupyter.log
    
  5. 生成 jupyter 配置和生成密码的 SHA 值。

    1
    2
    3
    4
    
    jupyter notebook --generate-config
    ipython
    > from notebook.auth import passwd
    > passwd()
    

    注意复制下来,待会要用。

  6. 使用 vim 修改 jupyter_notebook_config.py。

    1
    
    vim ~/.jupyter/jupyter_notebook_config.py
    

    在最后插入以下信息。

    1
    2
    3
    4
    5
    6
    
    c.NotebookApp.ip = '*'
    c.NotebookApp.allow_root = True
    c.NotebookApp.open_browser = False
    c.NotebookApp.port = 8888
    c.NotebookApp.password = u'上面生成的sha值'
    c.ContentsManager.root_dir = '/var/local/jupyter/home'
    
  7. 安装 nbextensions

    原生 jupyter 的很多体验不是很好,推荐使用一个 jupyter 插件来弥补。

    1
    2
    3
    
    pip3 install jupyter_contrib_nbextensions
    jupyter contrib nbextension install --user --skip-running-check
    jupyter nbextensions_configurator enable --user
    

    先进入 jupyter 配置一下,勾选 Hinterland,这个是自动补全功能。虽然比较简陋,但是也很不错了。

    Jupyter Notebook Setting

    你可以看到这个插件还有很多其他的功能,可以自己探索一下。

  8. 后台守护进程开启服务器。

    1
    
    nohup jupyter notebook > /var/local/jupyter/runtime.log 2>&1 &
    

    可能需要权限:

    1
    
    nohup jupyter notebook --allow-root > /var/local/jupyter/runtime.log 2>&1 &
    
  9. 由于阿里云的限制,还需要配置一下安全策略。

    打开云服务器的实例界面,选择 本实例安全组-配置规则,可以看到下面的这个界面,添加一条规则就行了。

    Aliyun Setting

  10. 在 Safari 中,打开服务器的 IP+端口号 8888。

使用 Hugo 构建
主题 StackJimmy 设计