问题:
Linux上安装了docker,docker启动nginx容器,无法通过80个端口成功访问
故障诊断:
1、检查启动nginx容器的命令或yaml文件,查看是否绑定到本地端口
启动nginx容器时,必须将本地80端口(其他端口也是如此)绑定到nginx容器的80端口。 这样,您就可以访问本地80个端口并成功跳转到nginx容器上的相应端口
2、容器启动后运行:
docker ps -a
显示容器的启动状态和对应端口的绑定情况
3、检查并运行linux端口使用情况:
netstat -ntlp
确定启用linux的端口(80个端口)是否正在处理正常监听状态
4、查看防火墙运行:
iptables -nvL
检查是否有80个端口,如果没有,请转至4.1和4.2步骤
4.1、检查linux上是否有/etc/sysconfig/iptables文件,如果有,vim进行修改,如果没有,添加80个端口
- a输入- mstate---statenew-mtcp-ptcp-- dport 80-j accept
上面一行的代码必须放在名为“- a input-mstate-- statenew-mtcp-ptcp-- dport 22-j accept”的行之后。 意思是露出80个端口
修改完成后,重新启动并运行防火墙。
服务可移植重启
4.2、部分CentOs7及更高版本的linux计算机上如果没有/etc/sysconfig/iptables文件,则可能按原样运行:
iptables-I输入- ptcp-- dport 80-j接受
tips :重新启动iptables,然后重新启动docker以重新启动nginx容器
系统重新启动坞站
5、云主机的情况下,也去看是否有与ECS对应的安全组(出入网配置)对应的端口