更换 docker 使用的网段
由 瞳人
发布于 Oct. 28, 2015, 6:41 p.m.
4 个评论
设置 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 点, 我认为服务器应该是没有问题的. 可能是校园网络环境导致的. 不过我还是在和 NIC 报告之前, 又找了鼓楼校区的几个同学测试, 进一步将问题修改至:
- 鼓楼校区教学楼 211 开头的 IP 地址可以访问服务器资源.
- 鼓楼宿舍区 172 开头的 IP 地址不能访问.
- 仙林宿舍 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 升级了一下. 今天的教训告诉我, 我还差的远呢. 加油!
参考文档

mzs March 2, 2016, 2:17 p.m. | Reply
竟然和昨天我的那个问题一样。。。。。。。。。。。。

liguobao May 28, 2018, 8 a.m. | Reply
在腾讯云搭建内网互通遇到同样的问题,炸了两天才觉醒...
4 Comments