如何通过互联网访问我的 docker 容器(笔记本).我的主机在谷歌云上运行



我无法访问运行"dockerized"ipython笔记本应用程序的容器。主机是在Google Cloud中运行的CentOS7。

以下是环境的详细信息:

主机:CentOS7/Apache Web服务器,例如在IP地址上运行:123.4.567.890(端口80正在侦听)

Docker 容器:Jupyter Notebook 应用程序 – 容器被称为例如 APP-PN,可以通过端口访问:docker 中的 8888。

我在本地服务器上运行应用程序,我可以通过浏览器访问笔记本应用程序: http://localhost:8888/files/dir1/app.html

但是,当我在谷歌云上运行应用程序时,如果我输入:


http://123.4.567.890:8888/files/dir1/app.html 我无法访问它。

我尝试了所有组合,通过主机上的TCP打开端口8888,并通过docker run命令公开端口-所有这些都不起作用:

防火墙-cmd --区域=公共 --添加端口=8888/TCP --永久

docker run -it -p 80:8888 APP-PN

docker run --expose 8888 -it -p 80:8888 APP-PN

我也尝试将 Apache 更改为侦听端口 80 和 8888,但我遇到了一些错误。

但是,如果我停止 Apache 网络服务器,然后运行命令

docker run -it -p 80:8888 APP-PN

我可以通过以下方式在浏览器中访问该应用程序: htttp://123.4.567.890/files/dir1/app.html

这是我的问题:我不想停止我的 Apache Web 服务器,同时我想通过外部端口 8888 访问我的 docker 容器。

提前感谢所有的帮助。

我在你的例子中没有看到 docker run -it -p 8888:8888 APP-PN

-p参数首先描述要侦听的主机端口,然后描述要路由到的容器端口。如果希望主机侦听与容器相同的端口,-p 8888:8888将完成它。

最新更新