【问题标题】:How to access my docker container (Notebook) over the Internet. My host is running on Google Cloud如何通过 Internet 访问我的 docker 容器(笔记本)。我的主机在 Google Cloud 上运行
【发布时间】:2017-05-23 02:35:23
【问题描述】:

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

这里是环境的详细信息:

主机:CentOS7/Apache Webserver 运行在例如 IP 地址:123.4.567.890(端口 80 正在监听)

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

如果我在本地服务器上运行应用程序,我可以通过浏览器访问笔记本应用程序: 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 网络服务器然后运行命令

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

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

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

提前感谢所有帮助。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我试过 8888:8888 还是不行。特别是当我在主机上打开 TCP 端口 8888 时。我只是忘记在我的帖子中包含它。
    猜你喜欢
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 2015-02-20
    • 2014-07-06
    • 2016-06-20
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多