【发布时间】:2019-04-07 18:41:15
【问题描述】:
我刚刚启动了一个新的 AWS EC2 实例。在实例的安全组中,我添加了一个新规则来打开端口 8080 以及端口 80。
我根据 aws tutorial 创建了一个运行 apache 服务器的 docker 映像和容器。
当我运行 docker run -p 80:80 hello-world(其中 hello-world 是 apache 容器映像)时,一切正常,我可以从公共网络访问服务器(使用 Web 浏览器或 curl 命令)。
但是,当我运行 docker run -p 8080:80 hello-world 并尝试发送 GET 请求(Web 浏览器或 curl)时,我遇到了连接超时。
如果我登录到运行 docker 容器的主机,curl 命令可以正常工作。这告诉我 8080 端口并没有真正对公共网络开放,并且有东西阻塞了它,那会是什么?
【问题讨论】:
-
你能发布 eact 图像吗?所以我会从我的尽头尝试。它必须按照你的解释工作。
-
谢谢金娜!图片在教程链接中。我没有把它放进去,所以我不会使帖子复杂化。
-
我已经完成了教程,你尝试过的完美工作。在端口 8080 上运行应用程序后,您的 curl 命令是什么?尝试使用 IP:8080
-
是的,就是这样,我也知道它可以工作,因为结果是“超时,而...在端口 8080 上”
-
会不会是我使用的机器?我选择了一个特定的实例(免费层),也许它的配置阻止了 8080。我检查了 iptables,那里什么也没有,我还检查了防火墙,它被禁用了。
标签: amazon-web-services docker amazon-ec2