第4章 网络层:容器怎么连网


第 4 章 · 网络层:容器怎么连网

章节摘要:容器的网络是 NET namespace 加虚拟设备堆出来的。本章先画出 bridge、host、none、container 四种模式的拓扑,再拆端口映射在 netfilter 里的落点,最后讲自定义网络为什么自带 DNS、生产该怎么规划容器互联。

学习目标

  1. 画出四种网络模式的拓扑并说出各自的适用与禁用场景
  2. 解释 docker0 网桥、veth pair、iptables 在 bridge 模式中的分工
  3. 说出端口映射的数据路径与发布范围语义
  4. 用自定义网络解决容器按名互访,理解默认网桥无 DNS 的原因

核心概念速览

bridge 模式的容器像住在一条内网街上的住户,端口映射是给这条街开的指定窗口。

四种网络模式拓扑对比

四种网络模式拓扑对比

子章节导航

4.1 四种网络模式拓扑

bridge 的 veth 与 docker0、host 的零开销、none 的绝对隔离、container 的共享栈,四种模式各自的机制、验证命令与选择依据。

4.2 端口映射与自定义网络 DNS

-p 参数背后的 DNAT 规则、发布到指定接口的安全意义,以及为什么必须放弃默认网桥、改用自定义网络换取 DNS 与隔离性。

子章节之间的逻辑关系

4.1 讲单容器怎么接入网络,4.2 讲容器与外界、容器与容器怎么互相找到对方:

接入:四种模式选一种(4.1) | v 互访:端口映射对外 + 自定义网络对内(4.2) ​

本章的学习陷阱

网络层最大的陷阱是把容器网络当成传统主机网络来理解。容器网络是动态的:IP 随创建分配、随销毁回收,服务地址必须落在"名字"而不是 IP 上;容器网络是叠加的:iptables 规则、veth 设备、网桥三者配合,任何一环缺失表现都不同。建议学习时准备两个终端,一个跑命令,另一个开着 docker network inspect 与宿主机的 ip 命令实时对照,让每条配置都能在拓扑图上找到落点。网络问题在生产上最消耗排查时间,前期投入的观察习惯会成倍返还。

前置知识与后续延伸

  • 前置:第 3 章 NET namespace 的概念
  • 为后续铺垫:自定义网络是第 6 章 Compose 服务互访的直接基础;DNS 与健康检查组合是编排层服务发现的前置知识

学习本章时要克制"背参数"的冲动。四种模式、一堆命令,真正需要记住的只有拓扑图:数据从容器 eth0 出发,经 veth 网线到网桥,再经 NAT 出宿主机——顺着这条路径推演,每个网络现象都能找到落点。命令忘了可以查,路径图忘了就只能瞎猜。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U