Docker服务器里端口的穿透,一次失败的经历
- 问题描述
实验室有一台GPU服务器,由于超过10个人要用,后续师弟师妹来的话用的人更多,所以我就采用了Docker搭建了多人公用的GPU服务器,这样给每个人都分配一个端口即可。因为有的师弟想用Jupyter Notebook(这一点我是不太认可的,个人觉得还是命令行,如vim啦非常好用),他就在他的Docker容器里安装了Jupyter,但是启动的时候要通过浏览器访问,直接通过宿主机是无法访问的,这一点是因为容器被宿主机包括,而访问Jupyter要通过访问宿主机。 - 尝试解决的办法
可以通过将容器的端口映射到宿主机的某个闲置的端口,但是容器已经创建了,这一点就无法用docker run命令来做,想到可以用iptables来做,但是一直失败,查询iptables也有转发记录,但是就是无法使用。 - 最后解决
最后用了一个比较笨的方法,先用nps做一个主机绑定,然后建立tcp隧道,也就是做了代理。