我无法访问运行"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
将完成它。