Docker 网络模型概述
Docker 网络模型决定了容器之间如何通信、如何访问宿主机及外部网络。理解 Docker 的网络模型有助于容器化应用的部署、调试与安全管理。
1. Docker 网络类型
Docker 提供多种网络类型,每种类型适用于不同场景:
1.1 桥接网络(Bridge)
- 默认网络类型
- 容器在同一桥接网络内可互相通信
- 容器通过 NAT 与宿主机通信
- 创建自定义桥接网络:
docker network create my-bridge
docker run -d --network my-bridge myapp
`
1.2 主机网络(Host)
- 容器共享宿主机网络栈
- 无网络隔离,性能高
- 适用于对网络性能要求高的场景:
docker run --network host myapp
1.3 覆盖网络(Overlay)
- 用于 Swarm 或 Kubernetes 集群
- 跨主机容器通信
- 使用 VXLAN 封装流量,实现集群内部互联
1.4 无网络(None)
- 容器没有网络接口
- 适用于特殊隔离或安全场景
2. Docker 默认网络
bridge:默认容器连接的网络host:共享宿主机网络none:没有网络overlay:集群环境使用
查看默认网络:
docker network ls
3. 容器通信机制
-
Docker 使用 NAT、端口映射和虚拟接口实现容器与宿主机及外部的通信
-
容器间通信:
- 同一网络可通过容器名称或 IP 互相访问
-
容器与宿主机通信:
- 桥接网络需端口映射
- 主机网络无需映射,直接访问宿主机端口
4. 网络管理命令
- 创建网络:
docker network create mynetwork
- 查看网络:
docker network inspect mynetwork
- 删除网络:
docker network rm mynetwork
掌握 Docker 网络模型及配置方法,可以确保容器间通信顺畅、安全可靠,并优化网络性能。
相关内容
- 构建自定义 Registry 本章节介绍如何搭建和管理 Docker 私有 Registry,包括部署自定义 Registry、配置存储与访问权限、镜像推送与拉取流程,以及安全与备份策略,满...
- 与 Kubernetes 的比较与协作 本章节对比 Docker 与 Kubernetes 的异同点,并讲解两者的协作方式,包括容器管理、编排、服务发现、部署流程和最佳实践,帮助理解容器生态系统中的应...
- Rootless Docker 与安全边界 本章节介绍 Rootless Docker 的使用方法及安全边界管理,包括非 root 容器运行原理、配置步骤、权限限制和网络隔离策略,提升容器安全性并降低宿主...
- 常用命令速查表 本章节提供 Docker 常用命令速查表,包括镜像管理、容器操作、网络配置、卷管理、日志查看及调试命令,帮助开发者快速查找和使用 Docker 命令,提高容器管...
- 参考文档与学习资源 本章节整理 Docker 官方文档、社区资源、教程和示例项目,帮助开发者系统学习 Docker 技术,掌握容器化应用的构建、运行、管理和优化方法。
- 示例项目与练习 本章节提供 Docker 示例项目和练习,包括容器化应用部署、Docker Compose 多服务编排、镜像优化、网络配置和存储管理,帮助开发者通过实战加深对...