我无法访问我的容器,该容器正在运行一个“停靠的”ipython笔记本应用程序。主机是在Google Cloud中运行的CentOS7。
以下是环境的详细信息:
主机: CentOS7/Apache Webserver,例如在IP地址123.4.567.890上运行(端口80正在侦听)
docker容器:一个Jupyter Notebook应用程序-容器被调用,例如APP-PN,可以通过Docker中的端口: 8888访问。
如果我在本地服务器上运行该应用程序,则可以通过浏览器访问notebook应用程序: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运行--expose 8888 -it -p 80:8888 APP-PN
此外,我还尝试将Apache更改为侦听端口80和8888,但得到了一些错误。
但是,如果我停止Apache then服务器,然后运行以下命令
docker run -it -p 80:8888 APP-PN
我可以在浏览器中通过htttp://123.4.567.890/files/dir1/app.html简单地访问应用程序
这里是我的问题:我不想停止我的Apache not服务器,同时我想通过外部端口8888访问我的docker容器。
提前感谢大家的帮助。
发布于 2017-01-09 09:26:24
我在你的例子中没有看到一个docker run -it -p 8888:8888 APP-PN
-p参数首先描述要侦听的主机端口,然后描述要路由到的容器端口。如果您希望主机侦听与容器相同的端口,-p 8888:8888将完成此任务。
https://stackoverflow.com/questions/41537748
复制相似问题