今天使用docker部署nginx,部署完畢后,查看容器已經啟動了。這時發現telnet端口卻不通,而且是telnet本地IP都不通,直接r報Connection refused,使用127.0.0.1 telnet,雖然是通的,但有問題,報Connection closed by foreign host.目前終於解決了,說下處理思路。
docker network inspect bridge #查看容器的IP為 172.17.0.2
curl 容器IP+80端口,拒絕連接,curl容器IP+宿主機端口8090,盡然正常返回。如下圖
很奇怪,不應該啊,因為查看 容器進程會發現,8090是宿主機端口,而80端口才是容器端口
最后,查看配置文件發現,nginx配置文件的端口不是80,而寫成了8090,修改nginx配置文件的端為80后,重新加新,telnet端口不通的問題就解決了。
建議,在啟動容器時,宿主機的端口和容器端口最好一致了。
在使用DOCKER時,iptables -F 命令慎用,該命令會清空防火牆規則,而容器與宿主機通信,默認是會在iptables里寫規則的。