阿里云ECS使用docker搭建nginx访问不到

使用阿里云ECS启动docker内的nginx后,访问公网ip发现访问不到

搭建步骤根据阿里云官网教程基于ECS快速搭建Docker环境

跟着教程走完后发现访问公网ip访问不到,配置完安全组后依旧访问不到。原以为是阿里云哪里配置出了问题,所以关闭docker内的nginx后,在服务器内安装了nginx,发现访问公网ip可以看到nginx首页,由此判断还是docker内的nginx配置有问题

最后解决发现,启动docker容器时配置的端口有问题,官网教程:

docker run --name nginx-test -p 8080:80 -d nginx

修改后为:

docker run --name nginx-test -p 80:80 -d nginx

启动后访问发现成功

具体原因目前还不太清楚,知道的大佬告诉一下哈


问题大概已经了解清楚,后者映射的是宿主机的80端口,http请求默认会在ip后增加:80,我之前都是直接访问的是公网ip,相当于是访问了公网ip:80端口,而我80端口在安全组里配置了,所以可以访问通

又起了一个docker内的nginx,使用前者映射宿主机8080端口,在安全组中配置了8080/8090端口,访问公网ip:8080端口后可以访问通。至此问题全部解决

总结:

最开始访问不通原因是我只在安全组中配置了80端口,而启动的nginx容器映射的是8080端口,所以直接访问公网ip的话,由于nginx没有映射80端口,所以无法访问到;访问公网ip:8080端口,由于安全组中没有配置8080端口,所以也无法访问到。

后来安全组中配置80端口,nginx容器映射80端口,直接访问公网ip,访问成功

安全组中配置8080/8090端口,nginx映射8080端口,直接访问公网ip:8080,访问成功

安全组端口+nginx映射端口+公网访问,都对应后可以访问成功

你可能感兴趣的:(docker,阿里云ECS部署,阿里云,docker)