問題表現
Docker容器開啟的服務,CentOS內部可以訪問,用curl http://127.0.0.1:8011 可以訪問。
CentOS的IP,外網可以正常Ping通。
容器對外端口,外網無法Telnet通。
外網無法訪問Docker容器網站。
原因
CentOS防火牆的原因,需要允許NAT轉發。
解決辦法
前提是CentOS虛擬機網絡要用橋接模式,讓虛擬機IP保持跟縮主機同一段IP。
設置防火牆允許NAT轉發。
firewall-cmd --zone=public --add-masquerade --permanent
把docker0網卡添加到trusted域
firewall-cmd --permanent --zone=trusted --change-interface=docker0
防火牆開放容器端口,假如容器對外暴露的端口是8011,那么防火牆要開放這個端口
firewall-cmd --add-port=8011/tcp --permanent
然后重啟防火牆、重啟Docker,重啟容器,就可以外網訪問Docker網站了。
firewall-cmd --reload
systemctl restart docker
docker start 容器名