一、背景
docker服務默認會創建一個docker0網橋,它在內核層連通了其他的物理或虛擬網卡,相當於將所有容器和其主機都放到同一個網絡。但是部署在內網中的IP段存在有此網段的IP時,會導致路由轉發異常,有服務本來時可以訪問的,但是由於裝了docker之後導致服務訪問不到的問題。
第一步 刪除原有配置
sudo service docker stop
sudo ip link set dev docker0 down #關閉網卡
sudo brctl delbr docker0 #刪除docker0網卡
sudo iptables -t nat -F POSTROUTING
第二步 創建新的網橋
sudo brctl addbr docker0 #新增網卡
sudo ip addr add 192.168.200.1/24 dev docker0
sudo ip link set dev docker0 up
第三步 配置Docker的文件
注意: 這裏是 增加下面的配置(注:rpm包安裝的docker沒有這個文件,可以自己手動建一個同名文件就行,路徑最好一致,否則還要啓動的時候,指定配置文件路徑)
vi /etc/docker/daemon.json
{ "bip": "192.168.200.1/24", }
docker的配置現在都是用daemon.json了,不需要去設置DOCKER_OPTS, 所以網絡上很多的資料早已過時。
關於daemon.json可以參考這篇文章 https://www.antergone.com/42.html
第四步 重啓主機
sudo reboot