Docker配置JupyterNoteBook服务器

设计思路

使用vps搭建jupyterNotebook服务器,设置域名和端口映射,已经映射容器内部目录与服务器目录

  • 配置域名解析至服务器的公网ip,这样我们可以通过域名+端口的方式连接至jupyterNotebook
  • 设置端口映射,在运行构建好jupyter环境的docker容器时将其开启的端口与vps端口映射,以便访问
  • 设置容器内部文件夹与服务器文件夹的映射,使得容器意外终止后内部数据不会被删除

设计流程

安装docker->下载docker镜像->创建容器并配置相关环境->制成镜像并运行->配置网络并在浏览器中访问

或者使用dockerfile自动构建

安装docker

具体安装细节请参考官方文档

也可移步至本人的另一文档

下载docker镜像

本人采用ubuntu系统作为运行jupyternootbook的系统

1
$ docker pull ubuntu:latest

创建容器并配置相关环境

docker run -it --name djs ubuntu:latest

$ cd && wget

制成镜像并运行

首先更新系统apt update然后下载必要的软件apt install wget vim
若使用dockerfile进行自动构建,可不下载vim

下载anaconda官网提供的shell脚本安装conda环境

运行shell脚本安装conda(使用/bin/bash),当安装完毕后执行conda init bash并重启终端(exit),
执行conda create –name DJS && conda activate DJS配置环境

通过conda环境安装jupyter:conda install -c conda-forge jupyter-lab

生成jupyter-notebook的启动参数jupyter-notebook --generate-config

修改~/.jupyter/jupyter_notebook_config.py文件并添加以下参数:

  1. c.NotebookApp.ip = ‘‘ - 配置允许远程访问的ip地址,表示任何地址均有权限。可自行修改成想要开放的ip地址
  2. c.NotebookApp.notebook_dir = dir_name - 配置jupyter-notebook的工作目录,在此目录下修改、添加程序文件
  3. c.NotebookApp.token = ‘’ - 配置访问的token,也可以设置访问的密码

创建dir_name目录,作为jupyter-notebook的工作目录

至此容器环境设置完毕,之后可通过docker build命令加上对应参数从容器生成镜像

配置网络并在浏览器中访问

假设生成的镜像名字是djs:v1,我们可以通过
docker run -dit --name containerName -p 7777:8888 -v /hostWorkDir:/dir_name djs:v1 jupyter-notebook
后台运行docker容器,同时开启jupyter-notebook服务。
此命令将容器的8888端口(jupyter-notebook开启的默认端口)与宿主机的7777端口进行映射,
同时将宿主机的hostWorkDir目录挂载至容器中jupyter-notebook服务的工作目录,做到数据不在容器中存储。

要在浏览器中访问,我们需要能通过ip、域名访问到服务器并开启7777端口

可以通过http://localhost:7777本地访问

若要设置ssl证书通过https协议进行访问,需要提供证书并修改相关参数

不推荐使用root账户运行服务,建议开一个新的普通用户开启jupyter-notebook服务

一些高效指令

  1. 批量删除编译错误或未指定名字的实验镜像

docker rmi $(docker images | grep "<none>" | awk '//{print $3}')

这个命令同样使用于已经退出的容器,只需修改为

docker rm $(docker container ls -a | grep "Existed" | awk '//{print $1}')


资料引用

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

请我喝杯咖啡吧~

支付宝
微信