Skip to content

Docker网络

说明

  • Docker网络模式有三种:Bridge、Host、Container。
  • 当然还有一种null模式,也就是无网络模式。
网络模式 说明 特点与适用场景 网络隔离级别 端口映射 跨容器通信方式
Bridge(桥接模式) Docker默认网络模式,所有容器连接到docker0虚拟网桥,通过NAT访问外网。 容器间通过docker0二层交换通信,需手动端口映射对外提供服务,适合大多数单主机场景。 支持 同主机内通过网桥直接通信;外部需端口映射
Container(容器共享模式) 共享同一个Network Namespace,共用IP、端口栈。 两个容器共享网络资源,进程可直接通过localhost通信,除网络外其他资源隔离,适合容器间紧密协作场景(如日志收集与主应用)。 仅网络共享 无需(共享目标容器端口) 直接通过localhost通信,无需额外配置
Host(主机模式) 容器直接共享宿主机的网络 端口直接占用宿主机端口,适合高性能场景 无需 直接使用宿主机网络栈,无额外通信开销

常用命令

命令用途 完整命令示例 说明与常用场景
查看所有网络列表 docker network ls 快速列出所有网络,包括默认的bridge/host/none和自定义网络
网络的详细信息 docker network inspect bridge 查看网络配置、网段、网关、已连接容器列表
创建自定义bridge网络(默认bridge) docker network create 网络模式名 自带容器DNS解析,支持容器名直接通信
运行容器时使用host模式 docker run -d --name test --network host 镜像 直接共享宿主机网络栈,性能最高,无需端口映射,容器IP即宿主机IP。
运行容器时使用container模式 docker run -d --name test --network container:目标容器 镜像 共享目标容器的network namespace,可直接通过localhost访问目标容器服务
将运行中容器加入指定网络 docker network connect 网络模式 容器名 给已启动的容器动态添加网络连接,无需重启容器,支持多网络接入。
将容器从指定网络断开 docker network disconnect 网络模式 容器名 移除容器与指定网络的连接
清理所有未使用的网络 docker network prune 一键删除所有未被任何容器使用的网络,清理环境,避免残留无效网络。
删除指定自定义网络 docker network rm 网络模式名 删除指定网络,注意:网络必须无任何容器连接才能删除。

架构图

Bridge模式

图片丢失了

Container模式

图片丢失了
全速前进中...