如何在服务器上搭建jupyter notebook

1. 准备一台Linux云服务器

我准备的是一台centos的服务器

2. 新建一个用户

新建一个jupyter的用户用于运行服务:

1
adduser jupyter

然后切换到此用户

1
su jupyter

3. 安装 Anaconda

下载Anaconda最新安装程序 https://www.anaconda.com/products/individual#Downloads

1
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh

运行安装程序:

1
sh Anaconda3-2021.05-Linux-x86_64.sh

安装过程中敲回车和输入yes同意许可即可

安装完成重新登录即可

![img](/picture/如何在服务器上搭建jupyter notebook/v2-d1b3950b1162edc8a1af6b408bd55d61_1440w.webp)

4. 搭建 Jupyter Notebook 环境

  • 安装jupyter包
1
conda install jupyter 
  • 生成默认配置文件
1
jupyter notebook --generate-config
  • 随后我们往配置文件写入一些内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 设置可以访问的ip, 默认是localhost, 将其改为 '*'
c.NotebookApp.ip = '*'

# 笔记本的默认打开目录, 自己设置
c.NotebookApp.notebook_dir = '/home/jupyter/documents/jupyter_notebook'

# 笔记本启动后是否打开浏览器, 设为 False即可
c.NotebookApp.open_browser = False

# 默认访问端口, 可自己修改
c.NotebookApp.port = 8888

# jupyterlab是否显示quit按钮,我设为false以免自己不小心按到把服务停了
c.NotebookApp.quit_button = False

# 如果使用root用户运行,将下列值改为True即可, 运行时也可加参数将其改为True
c.NotebookApp.allow_root = False
  • 修改好配置文件之后, 运行如下命令启动笔记本
1
jupyter notebook
  • 第一次运行会给出带token的链接, 复制到浏览器中打开, 点击登出

![img](/picture/如何在服务器上搭建jupyter notebook/v2-d87b65cf244b108b8abdc7852e9aa71b_1440w.webp)

  • 随后进入login界面, 输入刚刚链接中的 token值和新密码即可修改密码:

![img](/picture/如何在服务器上搭建jupyter notebook/v2-e2081045a2c082ee08c39abe48154a27_1440w.webp)

  • 设置好密码之后我们重启jupyter服务, 再次进入,发现就能用我们刚刚设置的密码登录了

![img](/picture/如何在服务器上搭建jupyter notebook/v2-0f3ccdfd654400ae3b648976f8588337_1440w.webp)

  • 随便上传一个笔记本试试

![img](/picture/如何在服务器上搭建jupyter notebook/v2-94d7678371bab9d155e4d84f675650bd_1440w.webp)

  • 发现已经ok了

![img](/picture/如何在服务器上搭建jupyter notebook/v2-b0fdd49e6f644d25de50b3e5690c8eed_1440w.webp)

5. 让 jupyter 在服务器上持久运行

  • 发现断开 SSH 连接之后, jupyter服务就会停止运行,我们利用screen 命令让jupyter服务一直运行
1
screen -S notebook
  • 然后启动jupyter服务
1
jupyter notebook
  • 随后按 Ctrl + A + D将服务挂到后台即可

安装screen

安装

CentOS/RedHat/Fedora

1
yum -y install screen 

Ubuntu/Debian

1
apt-get -y install screen

使用

1
2
screen -v 
Screen version 4.00.03 (FAU)
1
2
3
4
5
6
screen -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
screen -r <作业名称>  恢复离线的screen作业。
screen -S <作业名称>  指定screen作业的名称。
Crtl+a,d 暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
Crtl+a,w -> 显示所有窗口列表
Crtl+a,Ctrl+a -> 在两个最近使用的 window 间切换