如何通过Internet访问我的docker容器(Notebook)。我的主机正在Google Cloud上运行

时间:2017-01-08 20:50:47

标签: apache docker tcp google-cloud-platform jupyter-notebook

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

以下是环境的详细信息:

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

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

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

但是,当我在Google Cloud上运行应用程序时,如果我放了:

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

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

firewall-cmd --zone = public --add-port = 8888 / tcp --permanent

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

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

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

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

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

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

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

提前感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

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

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