docker使用物理机网桥
- 物理机
- 2025-07-26
- 7
是关于Docker使用物理机网桥的详细介绍:
基本原理与默认行为
Docker服务安装后会自动创建名为docker0
的虚拟网桥(本质上是Linux内核级的软件交换机),它在数据链路层将宿主机的物理网卡与其他虚拟接口互联,形成共享的网络环境,所有未特殊指定的容器默认都通过此网桥接入网络,实现彼此间及与主机的通信,每个容器会被分配同一子网内的独立IP地址,并配置默认网关指向docker0
接口。
组件 | 作用 |
---|---|
docker0 |
核心交换设备,管理容器间的二层通信 |
veth pair | 成对出现的虚拟以太网接口,一端在容器内部作为其主网卡(如eth0),另一端连接至网桥 |
IP分配策略 | 从预设的私有网段自动选取可用地址分配给新启动的容器 |
自定义网桥配置步骤
若需突破默认设置,可按以下流程创建并启用新的物理机网桥(以br0
为例):
- 安装工具包:执行
sudo apt-get install bridge-utils
获取网桥管理工具; - 新建网桥:运行
sudo brctl addbr br0
创建新网桥,再通过sudo ip addr add [目标IP]/[掩码] dev br0
为其配置静态IP; - 修改Docker配置:编辑
/etc/default/docker.io
文件,添加参数DOCKER_OPTS="-b=br0"
指定使用新网桥; - 重启服务生效:执行
sudo service docker.io restart
使配置变更生效; - 验证部署结果:新建测试容器后,用
brctl show
查看是否成功挂载到目标网桥。
高级应用场景扩展
跨主机容器互联方案
在多台物理机上实施统一网络规划时,可通过以下方式实现跨节点通信:
- 各主机分别创建绑定物理接口的相同名称网桥(如
br0
); - 为每个主机分配不重叠的CIDR区块,
- HOST1:
211.54.64/26
→ 可用IP范围211.55.65 ~ 10.211.55.126
- HOST2:
211.55.128/26
→ 可用IP范围211.55.129 ~ 10.211.55.190
- HOST1:
- 同步修改对应主机的
/etc/default/docker
文件,同时设置--fixed-cidr
参数锁定各自IP段; - 系统重启后,不同主机上的容器即可在同一逻辑网络中直接访问。
网络参数调优
关键可调参数包括:
| 参数类型 | 示例值 | 影响范围 |
|——————–|————————–|———————————-|
| --bip=CIDR
| 168.66.1/24
| 自定义网桥的基础网络地址段 |
| --mtu=BYTES
| 1500
| 调整最大传输单元适应特殊业务需求 |
| com.docker.network.enable_ip_masquerade
| true/false | 控制SNAT行为影响外部互联网访问能力 |
典型故障排查要点
当出现容器间无法互通等问题时,建议依次检查:
- 物理交换机端口状态是否正常;
- 网桥转发延迟是否过高;
- IP表路由规则是否存在冲突;
- 防火墙规则是否拦截了必要端口。
FAQs
Q1:如何确认当前使用的网桥是否是自定义的br0?
A:可以通过两条命令交叉验证:① brctl show
查看已存在的网桥列表及接口绑定情况;② docker network inspect bridge
查看Docker守护进程实际使用的网桥名称及其配置参数,若两者均显示br0
相关信息,则说明配置已生效。
Q2:修改网桥后原有容器需要重新创建吗?
A:不需要,只要正确修改了Docker配置文件并重启服务,现有运行中的容器会自动继承新的网络设置,但建议在维护窗口期操作,因为网络切换可能导致瞬断连接,对于关键业务系统,最好采用滚动更新