20250706-13-Docker快速入门(下)-容器网络_笔记

一、容器网络

1. Docker网络模型



  • veth pair:成对出现的虚拟网络设备,数据从一端进从另一端出,用于解决网络命名空间之间的隔离问题。相当于在容器和宿主机之间建立"网线"连接。
  • docker0网桥:二层网络设备,将Linux支持的端口连接起来,实现类似交换机的多对多通信。默认IP为172.17.0.1/16,容器通过veth pair接入该网桥。
  • 网络隔离机制:容器拥有独立的网络命名空间,通过veth pair与宿主机通信。容器内eth0地址(如172.17.0.2)与宿主机veth设备成对出现。
  • 通信原理:docker0作为虚拟交换机,容器间通过MAC地址进行二层通信,宿主机通过路由表和iptables规则实现与容器的三层通信。
2. 容器网络访问

1)外部访问容器



  • DNAT机制:通过iptables -t nat -vnL DOCKER可查看规则,将宿主机端口(如88)流量转发到容器IP(如172.17.0.2:80)。
  • 完整流程:
    • 外部请求到达宿主机88端口
    • iptables做DNAT转换(目的地址改为容器IP)
    • 路由表判断下一跳为docker0网桥
    • 通过ARP广播找到目标容器
    • 数据经veth pair进入容器
2)容器访问外部



  • SNAT机制:通过iptables -t nat -vnL POSTROUTING可见MASQUERADE规则,将容器源IP(172.17.0.0/16)替换为宿主机IP。
  • 完整流程:
    • 容器流量经veth pair到达宿主机
    • 路由判断走默认网关(宿主机网卡)
    • iptables做SNAT转换(源地址改为宿主机IP)
    • 通过宿主机网络访问互联网
3)Docker使用iptables实现网络通信



  • 外部访问容器流程

    

    • 关键规则:DNAT tcp -- !docker0 *0.0.0.0/0 tcp dpt:88 to:172.17.0.2:80
    • 路由判断:通过ip route可见172.17.0.0/16网段流量走docker0设备
    • ARP解析:docker0网桥通过二层广播找到目标容器MAC地址
  • 容器访问外部流程

    

    • 容器路由:default via 172.17.0.1 dev eth0,所有非本地流量走docker0网关
    • SNAT规则:MASQUERADE all -- *!docker0 172.17.0.0/16 0.0.0.0/0
    • 地址转换:将容器源IP(172.17.0.3)伪装成宿主机IP(192.168.31.61)发出
二、知识小结

知识点

核心内容

技术实现

关键命令/工具

Docker网络基础模型

通过docker0网桥实现容器通信,类比交换机功能

虚拟网桥+veth pair设备对

ip addr/ifconfig查看docker0

容器间通信

容器通过veth pair连接到docker0网桥,基于MAC地址二层互通

veth pair跨网络命名空间连接

ip link查看虚拟设备对

宿主机与容器通信

veth pair解决宿主机与容器网络命名空间隔离问题

虚拟网线双向数据传输

nsenter进入命名空间验证

外部访问容器

端口映射(-p 88:80)通过iptables DNAT实现

目标地址转换(DNAT)+路由表查询

iptables -t nat -vnL DOCKER

容器访问外部网络

容器流量经docker0→宿主机→SNAT转换源IP后出站

源地址转换(SNAT)+默认网关

iptables -t nat -vnL POSTROUTING

关键网络组件

docker0网桥(默认)、veth pair(虚拟网线)、iptables规则

网桥管理+流量转发+地址转换

brctl show(网桥工具)

典型问题排查

容器无法互通/无法访问外网时检查iptables规则和路由表

规则优先级+路由路径验证

route -n查看路由表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值