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 -r
3.10.0-327.36.3.el7.x86_64

[root@docker ~]# docker version
Client:
 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

Server:
 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 网桥信息

wKioL1lH0u3gZ0OrAACGau0bLok043.jpg


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

wKioL1lH1F2AGPSqAAAf5zoVw5I007.jpg


  * 重启 docker 服务

[root@docker ~]# systemctl restart docker


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

wKioL1lH1LKj0beaAACJyqxvJWU544.jpg



4. 总结



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