如需VPS代購、PHP開發、服務器運維等服務,請聯系博主QQ:337003006
CentOS 8已經發行好長一段時間,為了嘗鮮在Online獨服上安裝了CentOS 8系統,隨之問題來了,發現Docker容器無法訪問外網,而CentOS 7上則不存在這個問題。
排錯分析
一開始懷疑是Docker DNS設置問題,導致Docker容器無法解析。遂修改配置文件/etc/docker/daemon.json
設置DNS:
{
"dns" : [
"8.8.8.8",
"1.1.1.1"
]
}
修改后重啟Docker服務,發現Docker容器還是無法聯網。
解決辦法
通過搜索了解到CentOS 8上防火墻發生了一些變化,防火墻原來使用iptables
,現在使用nftables
,猜測可能是轉發引起的問題。通過搜索終于在Github上找到類似的情況:,解決辦法為:
編輯firewalld配置文件/etc/firewalld/firewalld.conf
,將:
FirewallBackend=nftables
修改為:
FirewallBackend=iptables
并重啟Firewalld:systemctl restart firewalld.service
最后再重啟下Docker:systemctl restart docker
,驗證問題解決。
總結
- 可通過修改
/etc/docker/daemon.json
設置Docker DNS - CentOS 8防火墻由
iptables
變更為了nftables
- 可通過修改Firewalld配置文件
/etc/firewalld/firewalld.conf
將nftables
換回iptables
哈哈 我也遇到了 我是直接 使用host網絡解決
我用host網絡也不行,看來兼容性還有問題。