1. 背景

  Docker 服务启动后默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。

  Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信,它还给出了 MTU(接口允许接收的最大传输单元),通常是 1500 Bytes,或宿主主机网络路由上支持的默认值。这些值都可以在服务启动的时候进行配置。

2. 环境

[root@docker ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@docker ~]# uname -r3.10.0-327.36.3.el7.x86_64[root@docker ~]# docker versionClient: Version:         1.12.6 API version:     1.24 Package version: docker-1.12.6-28.git1398f24.el7.centos.x86_64 Go version:      go1.7.4 Git commit:      1398f24/1.12.6 Built:           Fri May 26 17:28:18 2017 OS/Arch:         linux/amd64Server: Version:         1.12.6 API version:     1.24 Package version: docker-1.12.6-28.git1398f24.el7.centos.x86_64 Go version:      go1.7.4 Git commit:      1398f24/1.12.6 Built:           Fri May 26 17:28:18 2017 OS/Arch:         linux/amd64

3. 实战

 * 默认docker0 网桥信息

 * 修改文件 /etc/docker/daemon.json 添加内容 "bip": "ip/netmask" [ 切勿与宿主机同网段 ]

  * 重启 docker 服务

[root@docker ~]# systemctl restart docker

  * 查看修改后的 docker0 网桥信息

4. 总结

以需求驱动技术,技术本身没有优略之分,只有业务之分。