docker网络与局域网网段冲突问题

偶然发现docker中ping不通172网段的ip

[root@6278609c3b1c www]# ping 172.18.5.128
PING 172.18.5.128 (172.18.5.128) 56(84) bytes of data.
From 172.18.0.3 icmp_seq=1 Destination Host Unreachable
From 172.18.0.3 icmp_seq=2 Destination Host Unreachable
From 172.18.0.3 icmp_seq=3 Destination Host Unreachable

发现是因为docker网桥与当前网段冲突了。
经过半天的各种关键词搜索。
找到解决办法,大致就是修改docker网桥配置。即 daemon.json中增加配置 {"bip" : "172.16.10.1/24"}类似配置指定网段

但是本人用的是docker for mac 不太好直接找daemon.json文件 (因为for mac 其实是有个虚拟机的,docker在虚拟机中)
在ui界面中,找到对应配置地方: preferences -> daemon -> advanced 中增加配置即可。
{
"debug" : true,
"experimental" : true,
"bip" : "172.16.10.1/24",
"registry-mirrors" : [

"https://registry.docker-cn.com"

]
}
(ps注意这里一定要检查好,如果导致docker重启不起来,需要工厂化配置)
设置完成后,重启,但是还是不可用。

这就奇怪了,本身就是因为网桥冲突导致的,为啥呢?
本着计算机是不会骗你的原因。
一点点翻docker官方文档,找了半天也没有相关的例子,各大搜索引擎也没搜到,搜到的也是如上的配置。
突然看到network章节,docker netWork create创建网络,灵光一闪,呀我这不是默认网桥,是自己建的网桥。。
自己用类似:
docker netWork create xxx-brige 建的网桥。

原来坑在这里。

找到问题就简单了。

停止所有容器,删除已经建立的网络,重新创建网络。

创建网络时候指定子网,即--subnet 参数
形如:
docker network create \
--driver=bridge \
--subnet=172.28.0.0/16 \
--ip-range=172.28.5.0/24 \
--gateway=172.28.5.254 \
br0

最终搞定了!
总结两点问题:
1,docker网桥与局域网网段冲突。
2,docker network自建网桥,与默认网桥配置不是一回事儿。

仅有 1 条评论
  1. Вероника

    Выполню массовые рассылки по 10 млн формам обратной связи!
    Имеющиеся категории баз:
    - Строительство: ~350 тыщ сайтов
    - Медицина: ~300 тыщ сайтов
    - Все сайты Москвы 1.5 млн сайтов
    - Отели / гостиницы: ~530 тыщ сайтов
    И огромная база сайтов в размере 150 млн в разных доменных именах
    ru/com/org/biz/kz/by и тд

    Цена рассылки 999 рублей по указанным выше категориям
    Рассылка по всем базам 4999 руб.
    Рассылка по 150 млн сайтов - 29 990 руб
    Сроки рассылки от 1 до 5 дней.

    Отличная доходимость писем до адресата через web сайт компании!

    Если вам нужна рассылка пишите на почту: support@xrumer.xyz

    Вероника 回复
发表新评论