linux下docker启动nginx没法访问80端口

问题:linux

Linux安装了docker,docker启动了一个nginx容器,经过 80 端口没法正常访问nginx

故障排查:docker

一、检查 nginx 容器启动的命令或者yaml文件,查看是否有跟本机端口进行绑定vim

启动nginx容器的时候,须要将本地的80端口(其余端口同理)跟nginx容器80端口(也能够是其余端口绑定)进行绑定,这样的话访问本地80端口才能正常跳转到nginx容器对应的端口安全

二、容器启动以后,运行:tcp

docker ps -a

查看容器的启动状态以及对应端口的绑定状况spa

三、查看linux端口的使用状况,运行:rest

netstat -ntlp

查看linux对应的端口(80端口)是否处理正常监听的状态code

四、查看防火墙,运行:blog

iptables -nvL

查看里面是否有80端口,若没有的话,进行4.一、4.2步骤

  4.一、查看linux上是否有/etc/sysconfig/iptables这个文件,有的话,vim进行修改,查看是否有80端口,没有的话加上

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

  上面这行代码放在 “-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT” 这一行以后就行,意思是暴露80端口

  修改完成以后,重启下防火墙,运行:

service iptables restart

  4.二、可能部分 CentOs7 之后的 linux 机器没有 /etc/sysconfig/iptables 这个文件的话,直接运行:

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Tips:重启iptables后,要重启下docker,再启动你的nginx容器

systemctl restart docker

五、如果云主机,还要去看下ECS对应的安全组(出入网配置)中是否有对应的端口

相关文章
相关标签/搜索