Docker网络完全指南:运维工程师必备手册
Docker 网络完全指南:运维工程师必备手册
一、Docker 网络基础概念
Docker 网络本质,是容器之间、容器与宿主机、容器与外部网络通信的隔离体系。安装 Docker 后,会自动创建几种默认网络,使用 docker
network ls 命令可以查看。容器网络核心目标,隔离网络环境,按需实现通信,控制访问权限。
二、Docker 内置 5 种网络驱动
bridge,默认桥接网络。新建容器不指定网络时,默认接入 bridge。同一 bridge 网络内容器可互相通信,跨网络默认隔离。容器可访问外部网络,外部默认不能直接访问容器,需要端口映射。
host,主机网络。容器直接复用宿主机网卡、IP、端口,没有独立网络命名空间。容器端口直接暴露在宿主机,不需要 - p 端口映射。缺点是端口不能重复,隔离性弱。适合高性能场景,比如高并发监控、日志采集。
none,无网络。容器完全禁用网络栈,没有网卡、IP。仅本地进程运行,完全隔离,安全级别高。
container,复用其他容器网络。新容器共享已有容器的网络命名空间,共用 IP 和端口。常用场景,主业务容器搭配 sidecar 日志代理容器。
overlay,覆盖网络。多用于多主机集群,比如 Docker Swarm。跨多台宿主机的容器,可以直接通信,底层封装数据包。
三、常用基础命令
查看网络列表,docker network ls。查看网络详情,docker network inspect 网络名。创建自定义网络,docker network create 网络名。容器接入网络,docker run --network = 网络名。断开容器网络,docker network disconnect。删除网络,docker network rm 网络名,网络内无容器才能删除。
端口映射参数 - p,格式宿主机端口:容器端口。示例 - p 8080:80,宿主机 8080 端口流量转发到容器 80 端口。注意,端口映射仅 bridge 网络生效,host 网络不需要。
四、网络通信场景
场景 1,同一自定义 bridge 内容器通信。可以直接使用容器名称作为域名互相访问,Docker 内置 DNS 解析。默认 bridge 网络不支持容器名 DNS,这是推荐使用自定义 bridge 的重要原因。场景 2,容器访问宿主机。Linux 下,宿主机网关 IP 一般为 172.17.0.1,新版 Docker 可以使用 host.docker.internal。场景 3,外部访问容器。bridge 模式,必须配置 - p 端口映射,防火墙放行宿主机端口。host 模式,直接访问宿主机对应端口。场景 4,跨主机容器通信。单机使用 overlay 不合适,单机优先自定义 bridge;多机集群使用 overlay 网络。
五、自定义 bridge 最佳实践
不要使用默认 bridge,业务容器统一使用自定义 bridge。优势,自带 DNS,容器名可互相解析;网络隔离更好;支持动态插拔容器;可以自定义网段。创建示例,docker network create --subnet=10.20.0.0/16 my-net。启动容器时指定 --network my-net,多个业务容器加入同一个网络。
六、常见问题排查步骤
第一步,确认容器网络配置,docker inspect 容器名,查看网络模式、IP、网关。第二步,容器内部测试,进入容器 ping 网关,ping 其他容器,测试 DNS。第三步,宿主机层面,检查防火墙、iptables 规则,端口是否被占用。第四步,检查路由,确认数据包转发是否开启,Linux 需要 ip_forward 开启。第五步,查看容器日志,检查应用本身监听地址,应用必须监听 0.0.0.0,监听 127.0.0.1 外部无法访问。
七、高频故障和原因
端口映射失败。宿主机端口被其他程序占用;容器内服务监听 127.0.0.1;防火墙拦截端口。
容器之间 ping 不通。不在同一个网络;使用默认 bridge,无法用容器名解析;安全策略阻断。
容器无法访问外网。宿主机 ip_forward 未开启;DNS 配置异常;宿主机网络故障。
host 模式端口冲突。宿主机已有程序占用相同端口,容器启动报错。
overlay 跨主机不通。主机之间端口不通;集群密钥不一致;路由问题。
八、安全注意事项
host 网络隔离弱,公网环境谨慎使用。不要随意开放全部端口,按需映射最小端口。自定义网络做网段划分,不同业务使用独立网络隔离。限制容器网络出站,可以使用 iptables 或者网络插件。容器内服务尽量不要以 root 运行,降低网络攻击风险。
九、选型参考
单机开发测试,自定义 bridge,优先推荐。单机需要极致网络性能,host 网络。完全隔离不需要网络,none。容器 sidecar 组合,container 网络。多主机 Docker Swarm 集群,overlay。
十、运维小技巧
业务固定 IP,可以在自定义网络创建容器时指定 --ip 参数。排查网络,容器内部可以安装 curl,ping,nslookup 工具。清理无用网络,停止并删除容器后,执行 docker network prune 清理闲置网络。生产环境,尽量固定网段,避免 Docker 自动网段冲突。
-
Docker网络完全指南:运维工程师必备手册Docker 网络完全指南:运维工程师必备手册 一、Docker 网络基础概念Docker 网络本质,是容器之间、容器与宿主机、容器与外部网络通信的隔离体系。安装 Docker 后,会自动创建几种默认网络,使用 docker network ls 命令可以查看。容器网络核心目标,隔离网络环境,按需实...
-
【收藏级】钉钉告警全套配置模板与脚本【收藏级】钉钉告警全套配置模板与脚本适用场景:服务器监控、Swoole 服务、数据库、CVM、日志异常、接口监控、自动化运维告警;基于钉钉机器人 Webhook。 ⚠️ 安全提醒:不要把 Webhook 密钥硬编码公开提交到 Git;建议配置 IP 白名单、加签,防止恶意调用刷消息。一...
-
Docker容器优化详解:从入门到生产环境实践Docker容器优化详解:从入门到生产环境实践Docker 容器优化不是“把镜像做小”这么简单。真正要解决的是:镜像构建效率、运行时资源隔离、网络与存储性能、日志与监控、安全合规、编排与治理。下面按从入门到生产的路径展开。一、入门阶段:先把容器跑稳刚接...
-
为什么推荐CDN电子书?深度对比与实测为什么推荐 CDN 电子书?深度对比与实测电子书(EPUB/PDF/MOBI)属于静态大文件,非常适合 CDN 分发。很多独立作者、知识付费、出版社直接用源站服务器托管电子书,流量一涨就卡顿、带宽跑满、跨地区下载慢。本篇是实测对比:源站直连、对象存储、CDN 分发三套方案,...
-
Docker安装路线图完全指南:运维工程师必备手册安装前准备1. 确认系统架构Windows:打开「设置 → 系统 → 系统信息」,查看「系统类型」确认是 x64 还是 ARM64macOS:点击左上角苹果图标 → 关于本机,查看「芯片」确认是 Apple Silicon(M1/M2/M3)还是 IntelLinux:终端执行 uname -m,输出 x86_64 为 AMD64,aarch64 为 ARM642. 卸载旧...
-
为什么推荐Traefik?深度对比与实测Traefik(发音为 traffic)是一款专为微服务架构和云原生环境设计的现代化开源 HTTP 反向代理和负载均衡器。与传统的反向代理(如 Nginx)不同,Traefik 的核心优势在于自动化服务发现与动态配置,它能实时监听基础设施的变化并自动更新路由规则,全程无需重启服务。核心...