遇到的問題
內網做項目集成,范圍中有通過docker容器化部署的應用,所以需要安裝docker基礎環境。
按照官方文檔安裝后docker后,發現機器無法ping通內網 172.17 網段的時間同步服務器。
問題的排查
1、通過 arp -a 命令查看本機的arp緩沖區內容
發現ping 172.17網段機器的請求用的是docker0的網卡(本文截圖均為命令演示,非真實問題截圖)
2、通過 ip route 命令查看核心路由表
發現docker0網卡使用網段為 172.17.0.0/24 網段;所以當機器 ping 172.17 網段服務器時會ping至docker映射網段中,導致實際機器無法連接
問題的解決
把docker0的網段修改為用不到的網段即可
具體操作:
1、關閉docker服務(用到的docker命令詳見)
(a)查看所有容器 docker ps -a
(b)關閉啟動的容器 docker stop <容器 ID>
(c)查找dockerd進程 ps -ef | grep dockerd
(d)殺掉dockerd進程 kill -9 <dockerd服務 pid>
2、刪除原有IP配置
(a)查看核心路由表 ip route
(b)刪除docker0 ip及網關設備 ip link set dev docker0 down
3、修改docker配置文件 /etc/docker/daemon.json中的bip配置
修改為用不到的網段,如 192.168 網段
{
"bip":"192.168.0.1/24"
}
4、重啟docker服務 dockerd &
5、再次檢查核心路由表 ip route
6、ping 172.17網段服務器檢查
查找資料時發現還有另外一種 docker_gwbridge 網卡集群沖突的情況,也是同樣的修改網段的方式解決,詳見 docker網絡沖突解決(修改docker_gwbridge網段)