問題: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對應的安全組(出入網配置)中是否有對應的端口