【Docker】网络介绍 发布时间:2026/7/17 1:10:07 【Docker】网络介绍【一】底层核心原理1. Linux 底层支撑技术2. 数据流转简单流程桥接模式默认【二】Docker 内置 5 种网络驱动1. bridge 默认网桥docker02. 自定义 bridge生产首选3. host 主机网络4. none 无网络5. container 复用容器网络【三】网络常用操作创建、查看、连接、删除1. 查看所有网络2. 创建自定义网桥重点3. 启动容器时指定网络方式 1创建容器直接加入自定义网络方式 2host 主机网络方式 3none 无网络方式 4复用其他容器网络4. 容器运行后动态连接 / 断开网络5. 删除网络【四】端口映射原理-p1. 两种写法底层原理【五】不指定 --network 时默认行为1底层环境2完整场景演示3生产环境结论【六】容器间通信规则【七】跨主机 Docker 网络Overlay简单补充【八】生产最佳实践总结【一】底层核心原理1. Linux 底层支撑技术Docker 网络完全基于 Linux 内核四大技术实现Network Namespace网络命名空间内核隔离技术每个容器拥有独立网络栈独立网卡、IP、路由表、iptables、端口、DNS。容器与宿主机、其他容器网络默认隔离相当于一台独立虚拟机网络环境。veth pair虚拟网线一对成对虚拟网卡一端宿主机网桥一端容器 namespace实现宿主机 ↔ 容器数据互通。Linux Bridge虚拟网桥宿主机虚拟交换机多个 veth 网卡挂载到网桥同网桥下容器二层互通。iptables / netfilter端口映射、SNAT/DNAT、访问控制、内外网转发、隔离策略全部依靠 iptables 规则实现。路由转发 ip_forward宿主机开启内核转发容器才能访问外网。2. 数据流转简单流程桥接模式默认容器内程序发包 → 容器内 eth0veth 一端通过 veth pair 转发到宿主机网桥 docker0网桥转发给同网络其他容器 / 交给宿主机网卡访问外网时 iptables 做 SNAT 源地址转换走宿主机物理网卡出去外部访问容器端口iptables DNAT 转发流量到容器内部 IP 端口【二】Docker 内置 5 种网络驱动执行docker network ls可查看默认网络表格网络类型驱动用途默认创建桥接网络bridge单机容器互通最常用自动创建bridgedocker0主机网络host容器共享宿主机网卡无隔离不默认创建手动使用无网络none容器完全禁用网络隔离自动创建none容器互联container复用另一个容器网络栈无需提前创建运行时指定自定义网桥bridge推荐生产使用自定义网段、DNS、隔离分组手动docker network create创建1. bridge 默认网桥docker0宿主机开机启动 docker 自动创建虚拟网桥 docker0网段默认172.17.0.0/16不指定网络的容器默认接入 docker0同 docker0 容器之间可以通过容器名 / IP 互相访问外部访问容器需要-p 宿主机端口:容器端口端口映射缺点多项目容器混在同一网段无隔离无法自定义网段复杂环境混乱。生产不建议直接用默认 docker0推荐自定义 bridge。2. 自定义 bridge生产首选和默认 bridge 原理一致但支持自定义网段、子网、网关、标签实现项目网络隔离。同一自定义网络内容器可直接用容器名称互相解析访问跨自定义网络默认不通。3. host 主机网络容器不创建独立 network namespace直接复用宿主机物理网卡、IP、端口。优势无端口转发损耗性能极高缺点无网络隔离容器直接占用宿主机端口多服务端口冲突风险大无法端口映射-p失效适用高性能中间件如 k8s node、监控采集、网关4. none 无网络容器只有 lo 本地回环网卡无任何外部网络完全隔离。适用纯本地计算、安全离线任务。5. container 复用容器网络新容器共享已有容器的 network namespace共用同一张网卡、同一个 IP。用法--network container:容器ID/名称适用sidecar 边车容器日志采集、监控代理和主容器共享网络。【三】网络常用操作创建、查看、连接、删除1. 查看所有网络docker network ls # 查看网络详情网段、挂载容器、配置 docker network inspect 网络名/ID2. 创建自定义网桥重点基础语法docker network create [参数] 网络名称常用参数--subnet自定义子网网段--gateway网关地址--driver bridge指定网桥驱动默认-d overlay跨主机集群网络Swarm--attachable允许容器后期动态接入网络示例创建业务专属网络 app-net# 指定网段 172.20.0.0/16网关172.20.0.1 docker network create --driver bridge --subnet 172.20.0.0/16 --gateway 172.20.0.1 app-net3. 启动容器时指定网络方式 1创建容器直接加入自定义网络# 容器web加入app-net映射8080端口 docker run -d --name web --network app-net -p 8080:80 nginx # mysql 同网络和web互通 docker run -d --name mysql --network app-net -e MYSQL_ROOT_PASSWORD123456 mysql:5.7此时 web 容器可直接用mysql作为域名连接数据库Docker 内置 DNS 自动解析容器名。方式 2host 主机网络# 共享宿主机网络无需-p端口映射 docker run -d --name agent --network host prom/node-exporter方式 3none 无网络docker run -it --name offline --network none centos方式 4复用其他容器网络# 复用web容器网络栈 docker run -it --name sidecar --network container:web busybox4. 容器运行后动态连接 / 断开网络容器启动后可以中途加入其他网络实现跨网络互通# 将已存在容器连接到指定网络 docker network connect app-net web # 断开容器与网络 docker network disconnect app-net web5. 删除网络# 删除闲置网络无容器挂载才能删除 docker network rm app-net # 清理所有未使用网络 docker network prune【四】端口映射原理-p1. 两种写法# 宿主机所有网卡 8080 → 容器80 -p 8080:80 # 指定宿主机IP 192.168.1.100:8080 → 容器80 -p 192.168.1.100:8080:80 # 随机宿主机端口映射容器80 -p :80底层原理Docker 自动在宿主机 iptables 添加 DNAT 规则外部请求访问宿主机 IP:8080 → iptables 转发到容器内部 IP:80容器回包时做 SNAT修改源地址为宿主机网桥地址host 网络模式不经过端口映射直接监听宿主机端口【五】不指定 --network 时默认行为执行docker run不加--network xxx容器会自动接入 Docker 默认网桥bridge宿主机虚拟网卡 docker0。1底层环境自动分配172.17.0.0/16网段内一个空闲 IP网关为172.17.0.1docker0 网桥地址自动创建一对 veth pair 虚拟网卡一端挂 docker0一端进容器网络命名空间容器拥有独立网络栈和宿主机、其他容器隔离。1能做什么同属默认 bridge 的容器可以互通所有没指定自定义网络的容器都在 docker0 网段互相之间可以通过容器 IP 访问。容器能访问外网Docker 自动配置 iptables SNAT 规则容器流量经过宿主机转发访问互联网。宿主机可以访问容器只要启动时加-p 宿主机端口:容器端口做端口映射外部 / 宿主机就能访问容器服务。宿主机内部可直接 ping 容器内部 IP。2关键限制和自定义 bridge 最大区别默认 bridge 不支持 Docker DNS 容器名解析这是最核心痛点自定义 bridge同网络容器可以直接用容器名称互相访问如curl nginx默认 docker0 bridge只能用 IP 访问容器名无法解析。示例# 两个容器都不指定网络都在默认bridgedockerrun-d--nameng nginxdockerrun-it--namebus busybox# bus 里 ping ng 会失败域名解析失败pingng# 只能 ping ng 的容器IP才能通3无法和自定义 bridge 网络互通假设A 容器未指定网络 → 默认 bridge (docker0)B 容器加入自定义网络 app-net两者默认完全隔离互相 ping 不通。想要互通只能手动执行dockernetwork connect bridge B容器名# 或dockernetwork connect app-net A容器名4网段不可自定义默认网段固定172.17.0.0/16不能修改子网、网关多业务混在一起无网络隔离容易 IP 冲突、维护混乱。5无业务分组隔离所有不指定网络的容器挤在同一个大网段测试、预发、业务容器混在一起安全边界模糊。2完整场景演示# 容器1不指定网络进默认bridgedockerrun-d--nameweb nginx# 容器2不指定网络同默认bridgedockerrun-it--nametestbusybox# 1. test ping web IP 能通# 2. test ping web 容器名 解析失败# 3. 新建一个自定义网络容器 mysqltest 和 mysql 互相不通3生产环境结论本地临时测试、一次性容器可以不指定网络省事正式业务服务必须创建自定义 bridge 并手动 --network 指定支持容器名称 DNS 互通业务网络隔离可自定义网段、网关方便权限、访问控制分组。【六】容器间通信规则同一自定义 bridge 网络容器之间互通Docker DNS 解析容器名称直接使用容器名访问无需 IP。不同自定义 bridge 网络默认隔离互相不通如需互通用docker network connect将容器加入对方网络。默认 docker0 网桥容器同网段互通但无法和自定义 bridge 容器互通。host 模式容器可直接访问宿主机所有服务、所有网段容器。none 网络只能访问自身 127.0.0.1无法和任何外部通信。【七】跨主机 Docker 网络Overlay简单补充前面所有 bridge 仅限单台宿主机容器互通多台服务器容器互通使用overlay驱动依赖 Docker Swarm初始化 swarm 集群docker swarm init创建 overlay 网络docker network create -d overlay swarm-net不同节点容器加入 swarm-net 即可跨服务器通信底层基于 VXLAN 隧道技术封装 UDP 数据包跨物理主机传输。【八】生产最佳实践总结禁止直接使用默认 docker0每个业务项目单独创建自定义 bridge 网络实现环境隔离所有业务容器统一加入同一张自定义网络利用容器名 DNS 互通无需写死 IP数据库、中间件容器不暴露外网端口仅同网络业务容器访问提升安全高性能采集组件使用host网络普通 web / 数据库使用自定义 bridge离线计算类容器使用none网络缩小攻击面禁止容器以 roothost 网络运行对外服务风险极高。
【GraphRAG+Neo4j +TRAE】零代码打造基于知识图谱的本地知识库,实现知识图谱可视化 2026/7/17 1:10:07 一、项目概述 项目名称:GraphRAG知识图谱可视化——以《红楼梦》为测试文本 核心目标:利用知识图谱中的结构化关系信息,辅助模型更精准地理解查询意图,并在海量数据中找到最相关的信息进行生成。 🧠技术原理&#x…
RAG 技术原理——常见文档分片方式 2026/7/17 1:10:07 RAG 系统的性能瓶颈往往藏在一个容易被跳过的地方——embedding 模型没问题,LLM 推理也没问题,但检索结果就是不准。问题出在文档怎么切。 切得太碎,一段话被拆成三截,语义断了。切得太大,一篇 5000 字的文章塞进一个…
Win11微软商店访问与故障排查全指南 2026/7/17 1:09:07 1. Win11微软商店的入口定位与基础操作作为Windows 11的核心功能组件,微软商店(Microsoft Store)的访问路径相比Win10有了显著变化。刚升级的用户经常会在开始菜单里反复翻找却不见其踪影——这其实是因为Win11采用了全新的启动器布局设计。实…
TCP 四次挥手彻底解析:FIN、ACK、SEQ、半关闭与 TIME-WAIT 2026/7/17 2:30:27 文章目录TCP 四次挥手彻底解析:FIN、ACK、SEQ、半关闭与 TIME-WAIT前言一、四次挥手前必须掌握的核心规则1. TCP 是全双工协议2. FIN 表示本端不再发送数据3. FIN 会消耗一个序号4. 纯 ACK 不消耗新的序号5. ACK 标志位和 ack 确认号不是同一个概念二、变量 U、V、W…
量化策略开发实战:从回测到实盘的全流程解决方案 2026/7/17 2:30:27 最近在量化投资圈子里,不少开发者都面临一个共同的困境:策略回测效果很漂亮,但一到实盘就各种问题频发。要么是数据延迟导致信号错位,要么是交易接口不稳定造成订单丢失,更不用说复杂的风险控制和资金管理了。传统量化…
Windows 11本地账户切换指南与隐私保护实践 2026/7/17 2:30:27 1. 为什么需要将Microsoft账户切换为本地账户?Windows 11默认会引导用户使用Microsoft账户登录系统,这种设计虽然方便了云同步和微软生态整合,但在实际使用中,本地账户往往更适合以下场景:隐私保护需求:Mic…
Windows事件日志远程管理实战指南 2026/7/17 2:30:27 1. Windows事件日志远程管理的核心价值在分布式IT架构和混合办公成为主流的今天,服务器与终端设备分散在不同地理位置已成常态。传统需要亲临现场插显示器查日志的方式,在遇到系统崩溃、安全事件或性能问题时,往往会让运维团队陷入被动。Wind…
TCP 三次握手彻底解析:SYN、ACK、SEQ、确认号与状态迁移 2026/7/17 2:30:27 文章目录TCP 三次握手彻底解析:SYN、ACK、SEQ、确认号与状态迁移前言一、先区分四个容易混淆的概念二、SEQ 序号到底表示什么三、ack 确认号到底表示什么四、ACK 标志位与确认号字段的关系五、为什么 SYN 会占用一个序号六、TCP 三次握手完整过程七、第一次握手&…
JAVA练习295- 合并两个有序链表 2026/7/17 2:29:27 题目概览 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 [], l2 [] 输出&#…
ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表) 2026/7/17 0:00:47 更多请点击: https://codechina.net 第一章:ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表) 提示词工程已从经验试错迈入变量驱动的科学阶段。实证研究表明,影响…
DeepSeek V4替换Codex底座模型的实践与优化 2026/7/17 0:00:47 1. 为什么选择用DeepSeek V4替换Codex的底座模型去年我在开发一个智能代码补全工具时,发现Codex的默认底座模型在复杂业务逻辑场景下表现不尽如人意。经过多次测试对比,DeepSeek V4在以下几个关键指标上展现出明显优势:代码补全准确率&#x…
VS Code 高效配置与个性化定制全攻略 2026/7/17 0:00:47 1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…
网安靶场平台大盘点!(2026版) 2026/7/16 19:53:02 网安靶场平台大盘点(2026版) 摘要:网络安全的核心是实战,而靶场平台正是网安从业者的“练兵场”——无论是零基础新手入门、转行从业者积累实战经验,还是资深工程师提升攻防能力,靶场都是不可或缺的核心工…
每天60s读懂世界:2026年7月11日重点要闻解读 2026/7/16 14:31:46 🔥 个人主页:杨利杰YJlio❄️ 个人专栏:《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》《WINDOWS教程》 《Windows PowerShell 实战》 《人工智能实战合集》《超简单:用Python让Excel飞起来》🌟…
Git远程操作深度对比:fetch vs pull 的4种工作流与冲突解决策略 2026/7/16 22:18:49 Git远程操作深度对比:fetch vs pull 的4种工作流与冲突解决策略在团队协作开发中,Git的远程操作是日常工作中不可或缺的部分。git fetch和git pull这两个看似简单的命令,背后却隐藏着不同的工作哲学和适用场景。很多开发者在面对"到底该…
别再手动拼矩阵了!用MATLAB的triu和tril函数,5分钟搞定随机对称矩阵生成 2026/7/16 12:26:20 别再手动拼矩阵了!用MATLAB的triu和tril函数,5分钟搞定随机对称矩阵生成在数值计算和算法测试中,随机对称矩阵的生成是一个常见需求。无论是机器学习中的协方差矩阵模拟,还是结构力学中的刚度矩阵构建,对称矩阵都扮演着…
数据分析师必学MySQL:从零构建电商销售分析实战 2026/7/16 20:23:26 你是不是也遇到过这样的困惑:想学数据分析,看了很多Python、R语言的教程,结果发现第一步就被卡住了——数据从哪里来?怎么存?怎么查?怎么保证数据准确?很多数据分析教程都默认你已经有了一个干净…
HS2-HF Patch:3步实现HoneySelect2完美汉化与MOD整合 2026/7/17 1:35:40 HS2-HF Patch:3步实现HoneySelect2完美汉化与MOD整合 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF Patch是专为HoneySelect2玩家设计的一站…