linux下docker啟動nginx無法訪問80端口


問題:

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 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.2、可能部分 CentOs7 以后的 linux 機器沒有 /etc/sysconfig/iptables 這個文件的話,直接運行:

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

Tips:重啟iptables后,要重啟下docker,再啟動你的nginx容器

systemctl restart docker

5、若是雲主機,還要去看下ECS對應的安全組(出入網配置)中是否有對應的端口

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM