远程服务器Docker内配置和访问JupyterLab

远程服务器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地址以及映射端口号(直接从启动的链接复制粘贴即可)运行效果如下:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华师数据学院·王嘉宁

$感谢支持$

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值