原理介绍
docker服务默认会创建一个docker0网桥,它在内核层连通了其他的物理或虚拟网卡,相当于将所有容器和其主机都放到同一个网络。
docker默认指定docker0网桥的IP地址和子网掩码(172.17.0.1/16),使得主机和容器之间能通过网桥通信,同时还给出了MTU值,
默认是1500Bytes或宿主机网络路由上支持的默认值。可以在daemon.json中进行配置,也可以在dockerd服务配置文件中配置DOCKER_OPTS,
然后重启服务。
bip=CIDR IP地址加掩码格式,例如192.168.0.1/24
mtu=BYTES 覆盖默认的Docker MTU配置
“bip”: CIDR
“mtu”: BYTES
或者
DOCKER_OPTS=”–bip=192.168.0.1/24 —mtu=1400”

配置文件

  1. # vim /etc/docker/daemon.json
  2. {
  3. "bip": 192.168.0.1/24,
  4. "mtu": 1400
  5. }

修改生效

使之生效的命令如下 (需要安装bridge工具, yum install bridge-utils)

  1. # systemctl stop docker
  2. # ip link set dev docker0 down
  3. # brctl delbr docker0
  4. # systemctl start docker

注意事项

该方法只适用于一部分场景,就是环境中没有运行的容器,也就是说,要想通过该方式修改docker0的IP,
需要额外做一件事情,那就是需要先保证环境中没有运行着的容器,否则是修改不成功的。