在學習docker的時候,碰到了這麼個問題,使用
docker run -p 80:80 -d nginx
啓動nginx,然後從外部訪問80端口,竟然無法訪問。
首先,我使用-p 80:80來對docker的端口和本機端口進行了映射,然後默認綁定的ip應該爲0.0.0.0,這些信息使用docker ps能夠查看到,如圖:
如果只綁定127.0.0.1的話,那麼外部便無法訪問了,只能被本地訪問到。
隨後,在本地使用curl 127.0.0.1查看是否能連上nginx,如果nginx在運行且端口也映射到了,一般是能夠訪問到的。
如果現在遠程訪問不到的話,1是查看本地防火牆是否關閉,可能會牆掉請求。2是編輯/etc/sysctl.conf文件,添加一行或者更改一行爲
net.ipv4.ip_forward=1
允許ipv4請求重定向到docker,然後重啓網絡服務
service networking restart
或者
sysctl restart networking
一般就搞定了。