更换 docker 使用的网段

瞳人


发布于 Oct. 28, 2015, 6:41 p.m.

4 个评论

Docker


设置 docker0 网桥参数来调整容器使用的默认网段.

方法

退出并删除所有正在运行的 container, 然后停止 docker 服务. 然后修改 docker 配置文件. 在 Ubuntu 中该配置文件为 /etc/default/docker. 在 CentOS 中是 /etc/sysconfig/docker. 向其中的 DOCKER_OPTS 添加 --bip 参数.

1
 DOCKER_OPTS="--bip=192.168.1.5/24"

然后重启电脑, 这样 docker0 网桥的 IP 将变成 192.168.1.5. container 的 IP 也将变成此网段.

原因

记录一下, 今天做的挫事, 这是我为啥要换网段以及写着博客的原因. 最近发现一些问题, 主要表现如下:

  1. 仙林校区以及校外其他地方可以正常访问服务器资源.
  2. 鼓楼校区部分同学不能访问服务器资源.

但是由于上述第 1 点, 我认为服务器应该是没有问题的. 可能是校园网络环境导致的. 不过我还是在和 NIC 报告之前, 又找了鼓楼校区的几个同学测试, 进一步将问题修改至:

  1. 鼓楼校区教学楼 211 开头的 IP 地址可以访问服务器资源.
  2. 鼓楼宿舍区 172 开头的 IP 地址不能访问.
  3. 仙林宿舍 172 开头的 IP 可以访问.

然后我想着很有可能是两个校区之间的网络服务出现了问题, 例如是一些路由规则错了. 于是我就报告给 NIC 了. 后来 NIC 打电话给我说, 他们确定他们的所有设备没有问题, 而且从鼓楼访问与我们同一机房的服务器正常, 所以认为 是我们服务器防火墙之类设置问题. 然后我说我防火墙里面没有过滤这些 IP.

于是尝试从我们服务器往外 ping 鼓楼校区 172 的 IP, 发现 ping 不通. 报错是:

1
From 172.17.42.1 icmp_seq=1 Destination Host Unreachable

此时猛然想到了 docker 默认的的网段是 172.17.42.1/24. 居然和鼓楼校园的这个 IP 冲突了!! 仙林没问题是因为仙林用的不是 172.17.0.0/255.255.128.0网段.

于是才修改了默认的 docker 网段. 顺便把 docker 升级了一下. 今天的教训告诉我, 我还差的远呢. 加油!

参考文档

  1. 官方文档 Customizing docker0
  2. 为什么 --bip=192.168.1.5/24 中最后一位不能用 0

哎呦, 不错哦!

4 Comments

mzs March 2, 2016, 2:17 p.m. | Reply

竟然和昨天我的那个问题一样。。。。。。。。。。。。

善良单纯的板 Aug. 7, 2017, 4:09 p.m. | Reply

莫非博主是南大的?南航萌新瑟瑟发抖

瞳人 Aug. 19, 2017, 4:49 a.m. | Reply

哈哈哈,你好你好,我是学渣啊。。

liguobao May 28, 2018, 8 a.m. | Reply

在腾讯云搭建内网互通遇到同样的问题,炸了两天才觉醒...


Leave a Comment:

博客搜索

友情链接

公告

本博客代码已经公布在 Github 上,欢迎交流指正。

QQ 邮箱对 mailgun 不太友好, 所以使用 QQ 邮箱的评论, 可能会无法及时收到邮件。我会尽快寻找其他解决方案的。

本人现在独自使用 linode vps, 20 美元/月, 感觉压力大, 如果有意一起合租, 可以联系我. 在我的任意一篇文章下面留言即可. 关于使用方式, 现在倾向于使用 docker.