在Google Cloud上运行Jupyter笔记本

我在Google Compute Engine上运行Ubuntu 16.04虚拟机。 我创build了一个静态IP地址<my_static_ip_address> ,我的防火墙设置允许tcp:80-8888。

我在Docker镜像中启动了Jupyter服务器

jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root

并得到这个url

http://0.0.0.0:8888/?token=8b26c453d278eae1da71b80f26a4ef8ea06734e5c636d897

我无法通过http://<my_static_ip_address>:8888从外部浏览器访问http://<my_static_ip_address>:8888我错过了什么?

我在Docker镜像中启动了Jupyter服务器

你运行的docker命令是什么? 这里常见的问题是没有将主机端口映射到容器端口。

例如,如果你这样做:

docker run -p 8888 jupyter/notebook

然后,docker将分配一个随机的主机端口映射到容器中的端口8888。 在这种情况下,您可以通过运行docker ps来查看映射了哪个端口。 虽然端口将比8888高得多,所以你将无法达到jupyter,因为你的防火墙会阻止stream量。

你可能想要做的就是像这样映射一个主机端口:

docker run -p 8888:8888 jupyter/notebook

这应该将任何到达端口8888上的GCE主机的stream量映射到jupyter容器中的端口8888。