由于网络原因,此部署搭建在一个美国区域的 VPS 主机上,使得相应的网络约束不存在。
〇、先安装基础 Docker 环境
略
一、容器配置
注意到我们使用这个镜像:
关于不同版本镜像的说明:
jupyter-docker-stacks.readthedocs.io/en/latest/i…
关于如何启用 root 权限
jupyter-docker-stacks.readthedocs.io/en/latest/u…
mkdir -p /var/docker
vim /var/docker/docker-compose.yml
编辑 /var/docker/docker-compose.yml
文件:
services:
jupyter:
container_name: jupyter
image: jupyter/minimal-notebook
user: root
volumes:
- ./jupyter/home:/home
- ./jupyter/opt:/opt
- ./jupyter/etc:/etc
- ./jupyter/root:/root
- ./jupyter/var:/var
- ./jupyter/usr/lib:/usr/lib
environment:
- GRANT_SUDO=yes
nginx:
container_name: nginx
image: nginx
ports:
- 80:80
- 443:443
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
编辑 /var/docker/nginx/conf.d/default.conf
文件:
server {
listen 80 default_server;
location / {
return 444;
}
}
编辑 /var/docker/nginx/conf.d/jupyter.conf
文件:
注意务必添加 Websocket 的支持,否则连不上 kernel。
server {
listen 80;
server_name jupyter.*;
location / {
proxy_pass http://jupyter:8888;
proxy_set_header Host $host; # 设置主机头
proxy_set_header X-Real-IP $remote_addr; # 设置真实客户端IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 设置转发的IP地址
proxy_set_header X-Forwarded-Proto $scheme; # 设置转发的协议
# WebSocket支持
proxy_http_version 1.1; # 使用HTTP/1.1
proxy_set_header Upgrade $http_upgrade; # 升级请求头
proxy_set_header Connection "upgrade"; # 连接升级
}
}
然后启动即可:
cd /var/docker
docker compose up -d
请确保你的域名 jupyter.example.com
指向你的服务器,当然 *.example.com
应该是你自己的域名。
然后即可访问 jupyter,配置一下密码,即可开始使用。
二、Anaconda Kernel 配置
默认是直接用默认的 python 环境作为 kernel 的,为了方便与可配置,我们通过 anaconda 配置自己的虚拟环境。
# 安装 ipykernel
conda install -c anaconda ipykernel
# 创建自己的 conda virtualenv
conda create --name openai
# 将 openai 这个 virtualenv 注册为p ipykernel
python -m ipykernel install --user --name=openai