背景:
為配合網路安全調整,對一部分服務器進行網段隔離,需修改主機IP網段,這其中遇到一個很惡心的事情,因docker0自動生成的網段默認172.17.0.0/16,docker-compose網橋自動生成的網段172.18.x.x ,172.19.x.x等,而網路部門規劃的網段也是172.18.x.x,導致修改主機網卡地址后,與docker-compose網段沖突,導致服務例外,
相關版本
作業系統版本:CentOS Linux release 7.3.1611 (Core)
Docker版本:Version: 19.03.12
Docker-compose版本:docker-compose version 1.26.2, build eefe0d31
解決方案
先停止 docker-compose 創建的容器
docker-compose -f docker-compose.yml down
一、處理前狀態
如下圖所示,主機路由表里存在172.18.0.0的網段;

二、修改組態檔
vim /etc/docker/daemon.json
新增以下引數:
{
"debug" : true,
"default-address-pools" : [
{
"base" : "192.169.0.0/16",
"size" : 24
}
]
}
wq保存退出,
三、洗掉docker-compose網橋,重啟docker引擎
#洗掉docker-compose網橋
docker network rm a9c5fecc53c9
#重啟docker引擎
systemctl restart docker

如上圖,docker-compose的網橋已經沒有了,
測驗驗證
重啟運行docker-compose
docker-compose up -d

至此告一段落,方向應該是對的了
繼續驗證指定compose.yml檔案是否一致
此處將IP段調整為172.27.0.0,并且提前停掉了docker-compose
vim /etc/docker/daemon.json
{
"debug" : true,
"default-address-pools" : [
{
"base" : "172.27.0.0/16",
"size" : 24
}
]
}
啟停命令:
啟動
docker-compose -f docker-compose.yml up -d
停止
docker-compose -f docker-compose.yml down -v

查看docker-compose健康狀態


友情提示
1、docker-compose啟動的時候,會自動創建網橋,正常情況下停止docker-compose會自動移除該網橋;至于最初的環境為什么網橋沒有被洗掉,盲猜一手,估計是非正常命令停止的docker-compose,或docker-compose狀態不正常,
2、該方法會將docker0和docker-compose都指定到同一網段下,適用環境有限,
3、洗掉路由表里的配置,是無效的,重啟docker引擎后,會重新加載docker network ls下面的網橋資訊,所以要從源頭刪,
嘗試過的方法
點擊此處,正常情況下可以使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/355432.html
標籤:其他
