
一、bridge 桥接模式默认模式1.模式说明原理所有容器连接到默认docker0虚拟网桥宿主机充当网关容器独立内网 IP外部无法直接访问容器 IP必须端口映射容器之间可通过 IP 互通宿主机可直接访问容器 IP2.应用场景Nginx、Java 后端、MySQL、Redis 单机部署docker run -d -p 8080:80 nginx容器内网互通Java ↔ MySQL ↔ Redis外网通过宿主机端口访问服务隔离安全端口不冲突运维最简单二、host 主机模式1.模式说明原理容器共享宿主机网络栈不独立 IP容器 IP 宿主机 IP端口直接占用宿主机端口无网络隔离性能最好不能端口冲突2.应用场景Prometheus、Grafana、Filebeat、节点监控docker run -d --nethost prom/prometheus无需端口映射性能零损耗容器直接读取宿主机网卡、端口、网络状态监听大量随机端口场景三、none 无网络模式1.模式说明容器只有 lo 回环网卡完全没有外网、内网通信极致安全仅本地单机运算、离线任务2.应用场景离线数据清洗、本地加密解密、涉密后台任务容器完全不联网杜绝外网攻击、数据外泄只在容器内部运算四、container 容器共享网络1.模式说明多个容器共用同一个网络命名空间、同一个 IP端口不能重复进程间本地 socket 通信极快2.应用场景A 容器启动后B 容器共享 A 网络docker run --name app nginx docker run --netcontainer:app alpine两个容器同一个 IP、同一个端口栈本地通信 0 延迟五、overlay 覆盖网络集群分布式1.模式说明跨多台 Docker 主机容器互通原生支持 Swarm 集群容器跨节点依然内网直连无需外网端口暴露2.应用场景服务 A 在节点 1服务 B 在节点 2Overlay 让跨主机容器内网直接互通不用公网 IP、不用端口转发 天生服务发现、负载均衡、集群 DNS六、Docker 网络常用运维命令# 查看所有网络 docker network ls # 查看网络详情、挂载容器 docker network inspect bridge # 创建自定义网桥网络 docker network create app-net # 容器加入自定义网络 docker run --netapp-net nginx # 删除无用网络 docker network prune