无法访问AWS EC2上的端口8080

时间:2018-11-04 00:58:24

标签: amazon-web-services docker amazon-ec2

我刚刚启动了一个新的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并没有真正向公共网络开放,并且有什么阻止它,那会是什么?

2 个答案:

答案 0 :(得分:0)

我试图复制该东西,但是我无法做到(它对我有用),因此您应该检查一下这些东西:

1)检查安全组是否确实为您的ip打开了端口80和8080(如果只是为了确认这不是防火墙问题而进行的测试,则为0.0.0.0/0)。

2)检查容器是否正在运行:

docker ps -a

您应该在端口下看到:0.0.0.0:8080->80/tcp。

3)检查发送GET请求时,是否在请求中指定了端口8080,因此浏览器应类似于:

http://your.ip:8080

或卷曲:

curl http://your.ip:8080

答案 1 :(得分:0)

设置安全组可以解决此问题。

SecurityGroups>入站>编辑入站规则>添加新规则>所有TCP

enter image description here