百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

容器、Pod、虚拟机与宿主机网络通信全解:看这一篇就够了

cac55 2025-09-05 17:32 3 浏览 0 评论

在日常开发与部署过程中,很多人一开始都会有这样的疑惑:

  • 容器之间是怎么通信的?
  • 容器怎么访问宿主机?宿主机又如何访问容器?
  • Kubernetes 中 Pod 的网络和 Docker 容器一样吗?
  • 容器跨机器是怎么连通的?是用了物理网络还是隧道?

这些问题都指向一个核心话题:容器网络的通信机制。本篇将用通俗易懂但技术精准的方式,全面梳理容器、Pod、虚拟机与宿主机之间的网络交互原理,涵盖 Docker 和 Kubernetes 两大场景。


一、容器网络基础:veth、bridge、NAT 是关键

1. veth pair:容器网络的桥梁

当你运行一个容器时,Docker 会创建一对虚拟以太网接口(veth pair):

  • 一端连接到容器内部,作为容器的 eth0;
  • 另一端连接到宿主机的桥接网卡(如 docker0)。

这就好比用一根网线把容器和宿主机的虚拟交换机连起来。

2. bridge:Docker 默认网络

Docker 默认会创建一个叫 docker0 的 Linux 网桥(bridge),作用如下:

  • 给每个容器分配一个私有 IP(通常是 172.17.0.X 段);
  • 容器通过该桥接设备与宿主机通信;
  • 同一 bridge 网络下的容器可以直接互通。

3. NAT:容器访问外网的跳板

容器虽然拥有自己的私有 IP,但要访问外网,还需要宿主机做 NAT 转换(SNAT):

[容器 172.17.0.2] → [docker0] → [宿主机公网网卡] → Internet

宿主机通过 iptables 做地址伪装,实现容器出网访问功能。


二、容器与宿主机的通信模型详解

1. 宿主机访问容器

方式一:容器私有 IP(仅限 bridge 内)

curl http://172.17.0.2:80

要求容器和宿主机在同一个网络命名空间下,且未开启防火墙限制。

方式二:端口映射(推荐方式)

docker run -p 8080:80 nginx

此时访问宿主机的 localhost:8080,就等同于访问容器内的 80 端口。

2. 容器访问宿主机

容器内访问宿主机方式:

  • 使用默认网关 IP:在容器内查看 ip route,默认网关即为宿主机地址;
  • Docker for Mac/Win 专用地址:host.docker.internal 是官方内置别名。

三、容器与容器之间通信

1. 同宿主机,默认网络

两个容器都连接在 docker0 桥接网络时,它们的 IP 是同一子网,可以互通:

docker network inspect bridge

也可以通过容器名称通信(如果在用户自定义网络下):

docker network create my-net
docker run --network my-net --name web nginx
docker run --network my-net busybox ping web

2. 跨宿主机通信 —— Overlay 网络

当容器部署在不同宿主机上(如 Swarm 或 Kubernetes 集群中),就必须使用 Overlay 网络:

  • 原理:将容器的网络包通过 VXLAN、IPIP 或 eBPF 封装为宿主机级别通信;
  • 主流方案
    • Docker Swarm Overlay
    • Flannel(VXLAN、UDP)
    • Calico(基于 BGP 路由)
    • Cilium(eBPF + L7 安全)

网络通信流程图:

[容器A] --veth--> [Bridge A] --Overlay--> [Bridge B] <--veth-- [容器B]

四、Pod 网络模型与容器的不同点

1. 什么是 Pod?

在 Kubernetes 中,Pod 是最小的调度单元,一个 Pod 可以包含多个容器,这些容器共享:

  • 同一网络命名空间(network namespace)
  • 同一 IP 地址、端口空间

也就是说,Pod 内容器可以通过 localhost 互相访问!

2. Pod 与容器的网络区别

特性

Docker 容器

K8s Pod

网络 IP

容器私有 IP

Pod 拥有独立 IP

容器间通信

默认不同网段不可通

Pod 内可通过 localhost

默认网络

bridge

CNI 插件统一管理

跨宿主机通信

手动配置 Overlay

自动使用 CNI Overlay


五、虚拟机与容器之间的网络交互

当你将容器部署在虚拟机上(比如公有云的 ECS、私有云的 KVM、VMware),通信路径如下:

1. 虚拟机访问容器

  • 通过虚拟机的宿主网络访问 Docker 端口映射;
  • 若容器未映射端口,需要登录虚拟机内部使用容器 IP 访问。

2. 容器访问虚拟机外部服务

容器 → 虚拟机出口 NAT → 外部网络。

注意:如果使用云厂商的安全组、VPC 网络,还需配置相应规则开放端口。


六、容器网络常见的 7 种类型(Docker)

Docker 实际支持以下 7 种网络类型(截至 Docker v24):

网络类型

说明

bridge

默认网络类型,容器通过虚拟桥接互联

host

容器与宿主机共用网络命名空间

none

完全禁用网络

container:

多容器共享一个容器的网络空间(如 Pod 模式)

overlay

跨宿主机网络(Swarm 模式)

macvlan

容器像真实物理设备一样拥有独立 MAC 地址,接入物理网段

ipvlan

类似 macvlan,但不生成 MAC,适合高性能网络场景


七、实战建议:选哪种网络模式?

场景

推荐网络模式

单机本地测试

bridge

网络性能优先,无隔离需求

host

容器模拟独立主机部署

macvlan

跨宿主机部署集群

overlay(K8s/Swarm)

云上部署容器

通常由 CNI 自动配置(Flannel/Calico)


总结

容器网络虽然看似复杂,但只要理解了 Linux 网络命名空间、veth pair、桥接和 NAT 的基础概念,就能把握大部分网络模型的核心原理。在 Kubernetes 中,Pod 的引入进一步简化了应用层对网络的认知,实现了平台级统一抽象。

掌握容器网络,不只是让你能“跑起来”,更是成为云原生时代合格架构师的必经之路。

相关推荐

如何屏蔽色情网站?_怎么能屏蔽网站

一、基础防御:全网DNS劫持阻断1.修改全网DNS服务器推荐DNS:安全DNS:CleanBrowsing(成人内容过滤):185.228.168.168/185.228.169.168Open...

容器、Pod、虚拟机与宿主机网络通信全解:看这一篇就够了

在日常开发与部署过程中,很多人一开始都会有这样的疑惑:容器之间是怎么通信的?容器怎么访问宿主机?宿主机又如何访问容器?Kubernetes中Pod的网络和Docker容器一样吗?容器跨机器是...

Win11专业版找不到共享打印机的问题

有很多深度官网的用户,都是在办公室上班的。而上班就需要使用打印机,但更新win11系统后,却出现同一个办公室里面的打印机都找不到的问题,这该如何处理呢?其实,可能是由于我们并没有打开共享打印机而造成的...

常用电脑快捷键大全,摆脱鼠标依赖,建议收藏

Ctrl+C复制Ctrl+X剪切Ctrl+V粘贴Ctrl+Z撤销Ctrl+Y重做Ctrl+B加粗Ctrl+A全选所有文件Ctrl+S保存Ctrl+N新建Ctrl+O打开Ctrl+E...

Win11实现自动追剧Jellyfin硬解,免NAS复杂操作

大家好,欢迎来到思赞数码。本期将详细介绍如何通过安装和配置Sonarr、Radarr、Prowlarr、qBittorrent和Jellyfin,打造一套自动化的影视管理系统。很多人认为,要实现自动追...

微软Win11安卓子系统WSA 2308.40000.3.0更新推送下载

IT之家9月21日消息,微软官方博客今日宣布,已面向所有WindowsInsider用户推送了Windows11安卓子系统的2308.40000.3.0版本更新。本次更新和之前...

路由器总掉线 一个命令就能猜出八九分

明明网络强度满格或有线图标正常,但视频卡成PPT、网页刷不开、游戏动不了,闲心这些问题很多小伙伴都碰到过。每次都要开关路由、宽带/光猫、插拔网线……一通忙。有没有啥办法能快速确定故障到底在哪儿,方便处...

windows电脑如何修改hosts文件?_windows怎么修改hosts

先来简单说下电脑host的作用hosts文件的作用:hosts文件是一个用于储存计算机网络中各节点信息的计算机文件;作用是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中...

win10广告弹窗ShellExperienceHost.exe

win10右下角老是弹出广告弹窗,排查为以下程序引起,但是这个是系统菜单的程序不能动:C:\Windows\SystemApps\ShellExperienceHost_cw5n1h2txyewy\S...

Win10 Mobile预览版10512/10166越狱解锁部署已被黑客攻破

看起来统一的WindowsPhone和Windows越加吸引人们的关注,特别是黑客们的好奇心。XDA论坛宣称,在Win10Mobile预览版10512/10166上,已取得越狱/解锁部署突破,比如可...

6款冷门小众软件,都是宝藏,建议收藏

真的很不错(。-ω-)zzzBearhttps://bear.app/cn/Bear是一个漂亮,灵活的Markdown的写作工具。它一样只支持苹果家的全平台。它一出现就惊艳四方,就被AppSto...

如何让不符合条件的设备升级Windows 11

如果你是最近(6月24日之后)加入WindowsInsider项目并且你的设备并不符合升级条件,那么当你在尝试升级Windows11的时候可能会看到以下错误:你的PC不符合Wi...

windows host文件怎么恢复?局域网访问全靠这些!

windowshost文件怎么恢复?windowshost文件是常用网址域名及其相应IP地址建立一个关联文件,通过这个host文件配置域名和IP的映射关系,以提高域名解析的速度,方便局域网用户使用...

Mac Hosts管理工具---SwitchHosts

switchhosts!formac是一款帮助用户快速切换hosts文件的工具,switchhosts!formac能够帮助你快速方便的打造个人专用的网络环境,支持本地和在线两种方式,并且支持...

「浅谈趣说网络知识」 第十二弹 老而不死的Hosts,它还很有用

【浅谈趣说网络知识】第十二弹老而不死的Hosts,它还很有用什么时候才觉得自己真的老了,不是35岁以上的数字,不是头上的点点白发,而是不知觉中的怀旧。风口上的IT界讲的就是"长江后浪推前浪...

取消回复欢迎 发表评论: