为什么端口转发与我的 Docker 实例不一致?
Why doesn't port forwarding work consistently with my Docker instance?
我从笔记本电脑上通过 ssh 连接到服务器。我在我的笔记本电脑上打开了一个端口来接受来自端口 9090 的传入流量,并将其转发到 9191。
在服务器上,我创建了一个 Docker 球:sudo docker run --network host --runtime=nvidia -it --rm tensorflow/tensorflow:latest-gpu /bin/bash
。
接下来,在 shell(在 Docker 中),我这样做了:jupyter notebook --ip=0.0.0.0 --port=9090 --allow-root
瞧!我将浏览器指向 http://localhost:9191,我可以看到珍贵的 'lil 笔记本 运行。
我退出Docker球,退出ssh进程,回家睡觉。
今天,我醒来并通过 ssh 返回到服务器。我在笔记本电脑上打开了与前一天相同的端口。
我通过 sudo docker start my_image
在昨天的 Docker 图片中访问了 shell 然后
sudo docker exec -it my_image /bin/bash
但是现在,当我进入 shell(在 Docker 中)并输入 jupyter notebook --ip=0.0.0.0 --port=9090 --allow-root
时,就像我昨天所做的那样,我的转发不再有效。为什么?
所以,如果有人偶然发现这个问题,为了解决这个问题,我最终重新开始。
第 1 步:ssh
第 2 步:以这种方式创建 Docker:
sudo docker run -p 9090:9090 --runtime=nvidia -it --rm tensorflow/tensorflow:latest-gpu /bin/bash
关键是 -p 9090:9090
部分。我不知道 --network host
在做什么或没做什么,但摆脱它是关键。
我从笔记本电脑上通过 ssh 连接到服务器。我在我的笔记本电脑上打开了一个端口来接受来自端口 9090 的传入流量,并将其转发到 9191。
在服务器上,我创建了一个 Docker 球:sudo docker run --network host --runtime=nvidia -it --rm tensorflow/tensorflow:latest-gpu /bin/bash
。
接下来,在 shell(在 Docker 中),我这样做了:jupyter notebook --ip=0.0.0.0 --port=9090 --allow-root
瞧!我将浏览器指向 http://localhost:9191,我可以看到珍贵的 'lil 笔记本 运行。
我退出Docker球,退出ssh进程,回家睡觉。
今天,我醒来并通过 ssh 返回到服务器。我在笔记本电脑上打开了与前一天相同的端口。
我通过 sudo docker start my_image
在昨天的 Docker 图片中访问了 shell 然后
sudo docker exec -it my_image /bin/bash
但是现在,当我进入 shell(在 Docker 中)并输入 jupyter notebook --ip=0.0.0.0 --port=9090 --allow-root
时,就像我昨天所做的那样,我的转发不再有效。为什么?
所以,如果有人偶然发现这个问题,为了解决这个问题,我最终重新开始。
第 1 步:ssh
第 2 步:以这种方式创建 Docker:
sudo docker run -p 9090:9090 --runtime=nvidia -it --rm tensorflow/tensorflow:latest-gpu /bin/bash
关键是 -p 9090:9090
部分。我不知道 --network host
在做什么或没做什么,但摆脱它是关键。