dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2198
  • 铜币13937枚
  • 威望6046点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:160回复:0

如何更改 docker birdge 默认的网段地址?

楼主#
更多 发布于:2019-05-07 16:22
环境
ubuntu 16.04 Server
docker-ce 18.09.5

目标
调整 Docker 网桥(Docker0) 默认的网段地址,网络掩码由 172.17.0.1/16 更改为 172.17.0.1/24 。

Docker 网络原理
当Docker 启动时, 会自动在主机上创建一个 docker0虚拟网桥, 实际上是Linux 的一个 bridge, 可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。同时,Docker 随机分配一个本地未占用的私有网段(在 RFC1918 中定义)中的一个地址给 docker0接口。比如典型的 172.17.0.1,掩码为 255.255.0.0。此后启动的容器内的网口也会自动分配一个同一网段(172.17.0.0/16 )的地址。

当创建一个 Docker 容器的时候, 同时会创建了一对 veth pair 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内, 即 eth0;另一端在本地并被挂载到 docker0 网桥,名称以 veth 开头(例如 vethAQI2QT)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络。

网桥
brctl show
bridge name    bridge id        STP enabled    interfaces
docker0        8000.0242d7d882a0    no  

网段
ip addr show docker0
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:d7:d8:82:a0 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

步骤
1. 编辑配置文件
# 如果不存在则创建
vim /etc/docker/daemon.json
2. 确保有 bip 选项
{
  "bip": "172.17.0.1/24"
}
3. 重启 docker 服务
systemctl restart docker.service

验证
ip addr show docker0
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:2e:54:d3:48 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/24 brd 172.17.0.255 scope global docker0
       valid_lft forever preferred_lft forever

参考
https://success.docker.com/article/how-do-i-configure-the-default-bridge-docker0-network-for-docker-engine-to-a-different-subnet
#

最新喜欢:

xuxusxuxus
欢迎关注微信公众号: 运维录
游客

返回顶部