当前位置:首页 > 物理机 > 正文

docker使用物理机网桥

cker默认创建docker0网桥连接物理/虚拟 卡,实现容器与主机同物理网络通信;也可自定义网桥如br0并配置DOCKER_OPTS使用。

是关于Docker使用物理机网桥的详细介绍:

基本原理与默认行为

Docker服务安装后会自动创建名为docker0的虚拟网桥(本质上是Linux内核级的软件交换机),它在数据链路层将宿主机的物理网卡与其他虚拟接口互联,形成共享的网络环境,所有未特殊指定的容器默认都通过此网桥接入网络,实现彼此间及与主机的通信,每个容器会被分配同一子网内的独立IP地址,并配置默认网关指向docker0接口。

docker使用物理机网桥  第1张

组件 作用
docker0 核心交换设备,管理容器间的二层通信
veth pair 成对出现的虚拟以太网接口,一端在容器内部作为其主网卡(如eth0),另一端连接至网桥
IP分配策略 从预设的私有网段自动选取可用地址分配给新启动的容器

自定义网桥配置步骤

若需突破默认设置,可按以下流程创建并启用新的物理机网桥(以br0为例):

  1. 安装工具包:执行sudo apt-get install bridge-utils获取网桥管理工具;
  2. 新建网桥:运行sudo brctl addbr br0创建新网桥,再通过sudo ip addr add [目标IP]/[掩码] dev br0为其配置静态IP;
  3. 修改Docker配置:编辑/etc/default/docker.io文件,添加参数DOCKER_OPTS="-b=br0"指定使用新网桥;
  4. 重启服务生效:执行sudo service docker.io restart使配置变更生效;
  5. 验证部署结果:新建测试容器后,用brctl show查看是否成功挂载到目标网桥。

高级应用场景扩展

跨主机容器互联方案

在多台物理机上实施统一网络规划时,可通过以下方式实现跨节点通信:

  1. 各主机分别创建绑定物理接口的相同名称网桥(如br0);
  2. 为每个主机分配不重叠的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
  3. 同步修改对应主机的/etc/default/docker文件,同时设置--fixed-cidr参数锁定各自IP段;
  4. 系统重启后,不同主机上的容器即可在同一逻辑网络中直接访问。

网络参数调优

关键可调参数包括:
| 参数类型 | 示例值 | 影响范围 |
|——————–|————————–|———————————-|
| --bip=CIDR | 168.66.1/24 | 自定义网桥的基础网络地址段 |
| --mtu=BYTES | 1500 | 调整最大传输单元适应特殊业务需求 |
| com.docker.network.enable_ip_masquerade | true/false | 控制SNAT行为影响外部互联网访问能力 |

典型故障排查要点

当出现容器间无法互通等问题时,建议依次检查:

  1. 物理交换机端口状态是否正常;
  2. 网桥转发延迟是否过高;
  3. IP表路由规则是否存在冲突;
  4. 防火墙规则是否拦截了必要端口。

FAQs

Q1:如何确认当前使用的网桥是否是自定义的br0?
A:可以通过两条命令交叉验证:① brctl show查看已存在的网桥列表及接口绑定情况;② docker network inspect bridge查看Docker守护进程实际使用的网桥名称及其配置参数,若两者均显示br0相关信息,则说明配置已生效。

Q2:修改网桥后原有容器需要重新创建吗?
A:不需要,只要正确修改了Docker配置文件并重启服务,现有运行中的容器会自动继承新的网络设置,但建议在维护窗口期操作,因为网络切换可能导致瞬断连接,对于关键业务系统,最好采用滚动更新

0