文章目录
- 一、创建容器
- 二、Conda安装
- 三、安装 Jupyter
- 四、启动 Jupyter
- 五、注册内核来使用虚拟环境
- 小结
一、创建容器
-
可以先查看宿主机
8888端口是否被占用,无输出,表明端口未被任何进程占用,如果有LISTEN,可能在创建容器的时候需要更换宿主机端口,例如-p 8890:8888,这里以8890为例。netstat -tuln | grep 8888
-
关于容器的具体内容不过多介绍,在创建容器的时候注意要将宿主机的
8888端口映射到容器的8888端口 (Jupyter 默认端口),如果宿主机8888端口被占用,那么需要修改宿主机映射的端口,比如-p 8890:8888。docker run -it --name jupyter_container -p 8888:8888 镜像名:版本号 /bin/bash -
启动容器,准备创建虚拟环境。
docker exec -it jupyter_container bash
二、Conda安装
-
这里以
miniconda为例,选择X86架构,通过wget获取安装脚本。wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -
增加可执行权限。
chmod +x Miniconda3-latest-Linux-x86_64.sh -
运行安装脚本,根据提示
yes/no,然后注意一下安装路径,按需修改,在最后一步输入no。./Miniconda3-latest-Linux-x86_64.sh -
配置环境变量,打开
~/.bashrc,在文件最后增加如下内容并将路径修改为刚才的安装路径之后source ~/.bashrc。export PATH="/路径/miniconda3/bin:$PATH" -
激活环境变量之后,执行
conda init,然后重启docker即可。docker restart jupyter_container
三、安装 Jupyter
-
创建虚拟环境
jupyterconda create -n jupyter python=3.9 -
激活虚拟环境。
conda activate jupyter -
因为我们使用的是
miniconda,轻量版不自带jupyter,所以需要我们手动安装。pip install jupyter -
如果没有
jupyter lab,也可以手动安装。pip install jupyterlab
四、启动 Jupyter
-
启动
Jupyter,需要增加如下参数:--ip=0.0.0.0:绑定所有网络接口,允许外部访问 (很重要) ;--port=8888:指定 Jupyter 监听的端口,与容器端口映射一致;容器中一般是 root 用户登录,--allow-root:允许以 root 用户运行,容器中一般也没有浏览器,--no-browser:防止 Jupyter 尝试打开浏览器。jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root xxxx.ipynb # 同理 jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root xxxx.ipynb -
启动后,选择任意一个链接在浏览器中打开即可。

-
如果在创建容器的时候,没有使用默认的端口映射,比如使用
-p 8890:8888进行映射,在拷贝链接的时候需要在宿主机浏览器中将端口号修改为8890即可正常打开 jupyter 文件。

-
浏览器中内容如下,使用
jupyter lab也是同理,可以在指令后指定打开的具体目录。

-
Jupyter 的汉化,使用如下指令安装汉化包之后,启动
Jupyter,找到setting,然后选择language,选择中文,之后重启内核。pip install jupyterlab-language-pack-zh-CN
五、注册内核来使用虚拟环境
-
安装
ipykernel用于管理 Jupyter 内核。pip install ipykernel -
注册
jupyter(虚拟环境名)为 Jupyter 可用内核vienv(内核名,可变),之后启动 Jupyter 就可以使用注册后的虚拟环境(内核)运行cell。python -m ipykernel install --user --name jupyter --display-name "vienv" -
查看已注册的内核。
jupyter kernelspec list -
删除注册的内核。
jupyter kernelspec uninstall 内核名称
小结
关于Docker以及Jupyter的详细操作这里不过多涉及,如有其他问题,欢迎在评论区讨论,谢谢!!!




![BUUCTF [ZJCTF 2019]EasyHeap](https://i-blog.csdnimg.cn/img_convert/add4ad74a78508bb834bb00b5c929764.png)



![[攻防世界] easyphp writeup](https://i-blog.csdnimg.cn/direct/a02081cf4d1a49b2896b9e0063739aa9.png)










