栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【Docker】docker-compose 自动创建的网桥与局域网冲突解决方案

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Docker】docker-compose 自动创建的网桥与局域网冲突解决方案

背景:
为配合网络安全调整,对一部分服务器进行网段隔离,需修改主机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下面的网桥信息,所以要从源头删。

尝试过的方法

点击此处,正常情况下可以使用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/456847.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号