远程服务器Docker内配置和访问JupyterLab
远程服务器Docker内配置和访问JupyterLab相关文章 如果远程服务器docker想通过pycharm实现代码调试,可参考博客pycharm与ssh远程访问服务器docker 如果远程服务器docker想部署Flask项目,可参考博客远程服务器docker部署Flask+MongoDB项目配置方法: 任意选择一个镜像,并创建相应的容器,创建容器及容器内的ssh和防火墙配置其可参考上述
远程服务器Docker内配置和访问JupyterLab
相关文章
如果远程服务器docker想通过pycharm实现代码调试,可参考博客pycharm与ssh远程访问服务器docker
如果远程服务器docker想部署Flask项目,可参考博客远程服务器docker部署Flask+MongoDB项目
配置方法:
任意选择一个镜像,并创建相应的容器,创建容器及容器内的ssh和防火墙配置其可参考上述的两个文章。需要注意的是,jupyter-lab默认使用端口8889,因此在run时候要额外增加一个端口映射规则,例如:
sudo docker run -p [自选端口号1]:22 -p [自选端口号2]:8889 --gpus all -itd --name [自己起个名字] --privileged=true -v [宿主机(本地)的目录]:[自定义创建好的容器内的目录] [镜像名称或id] /bin/bash
- -p [自选端口号1]:22:同时将该容器映射到对应的端口号,并与22号端口进行关联监听,该端口映射后可以直接通过SSH访问该docker,无须经过宿主机;
- -p [自选端口号2]:8889:同时将该容器映射到对应的端口号,并与8889号端口进行关联监听;
- –gpus all:指定该实例化的容器内可使用所有宿主机包含的gpu,如果你配置的项目涉及到使用深度学习的模型获依赖于显存,则需要配置该参数,但你的宿主机需要存在显存才可以;
- -i:保持STDIN开启;
- -t:分配一个伪终端;
- -d:在后台运行
- –name [自己起个名字]:为了避免记住冗长复杂的容器id,通常可为容器设置一个名称,注意不要与现有的名称相同;
- –privileged:设置为true时,该容器可以拥有绝对的权利,例如开启防火墙端口等。非常关键,因为这直接关系到你的docker可不可以被宿主机以及外界访问;
- -v [宿主机(本地)的目录]:[自定义创建好的容器内的目录]:为了让容器内的文件与宿主机保持同步,可执行该参数,注意自定义创建好的容器内目录必须是绝对路径。
创建完之后,请参考上述两个相关文章,配置SSH等。然后进入容器,安装jupyter-lab:
pip3 install jupyter jupyter-lab
安装完之后,在容器内开启8889的端口防火墙:
sudo /sbin/iptables -I INPUT -p tcp --dport 8889 -j ACCEPT
当然宿主机也要开启相应映射的端口。
最后启动jupyter:
jupyter-lab --ip 0.0.0.0 --port 8889 --allow-root
注意一定要添加参数–ip 0.0.0.0 ,否则8889在容器内默认是在127.0.0.1地址,此时无法映射到宿主机,需要将该程序运行在0.0.0.0上。
浏览器键入服务器ip地址以及映射端口号(直接从启动的链接复制粘贴即可)运行效果如下:
更多推荐
所有评论(0)