--- outline: [2,3] --- # 网络驱动程序 Docker 的网络子系统是可插拔的,使用驱动程序。默认存在几个驱动程序,提供核心网络功能: - `bridge` : 默认网络驱动程序。如果不指定驱动程序,您创建的网络类型就是这种。桥接网络在您的应用程序在容器中运行且需要与其他同一主机上的容器通信时常用。请参阅[桥接网络驱动程序][1]。 - `host` : 移除容器与 Docker 主机之间的网络隔离,并直接使用主机的网络。请参阅[主机网络驱动程序][2]。 - `overlay` : 叠加网络将多个 Docker 守护进程连接在一起,并使 Swarm 服务和容器能够在节点之间进行通信。此策略消除了需要进行 OS 级别路由的需求。请参阅[叠加网络驱动程序][3]。 - `ipvlan` : IPvlan 网络为用户提供对 IPv4 和 IPv6 地址的完全控制。VLAN 驱动程序在此基础上进一步为操作员提供了对第二层 VLAN 标记的完全控制,甚至为有兴趣进行底层网络集成的用户提供 IPvlan L3 路由。请参阅 [IPvlan 网络驱动程序][4]。 - `macvlan` : Macvlan 网络允许您为容器分配 MAC 地址,使其在您的网络中看起来像一个物理设备。Docker 守护进程通过 MAC 地址路由流量到容器。使用 `macvlan` 驱动程序有时是处理期望直接连接到物理网络而不是通过 Docker 主机网络堆栈进行路由的遗留应用程序的最佳选择。请参阅 [Macvlan 网络驱动程序][5]。 - `none`: 完全隔离容器与主机和其他容器。 none 对 Swarm 服务不可用。请参阅[无网络驱动程序][6]。 - [`Network plugins`][7];您可以安装并使用第三方网络插件。 ### 网络驱动程序概述 - 默认的桥接网络适用于不需要特殊网络功能的容器运行。 - 用户定义的桥接网络使同一 Docker 主机上的容器能够彼此通信。用户定义的网络通常为属于同一项目或组件的多个容器定义一个隔离网络。 - 主机网络将主机的网络与容器共享。使用此驱动程序时,容器的网络不会与主机隔离。 - 当您需要在不同的 Docker 主机上运行的容器进行通信,或者当多个应用程序使用 Swarm 服务协同工作时,Overlay 网络最为适用。 - 当您从 VM 环境迁移过来或需要让容器看起来像是网络中的物理主机,每个都有唯一的 MAC 地址时,Macvlan 网络最为适用。 - IPvlan 与 Macvlan 类似,但不会为容器分配唯一的 MAC 地址。当网络接口或端口上分配 MAC 地址的数量受到限制时,可以考虑使用 IPvlan。 - 第三方网络插件允许您将 Docker 与专门的网络栈进行集成。 ## 网络教程 现在您已经了解了 Docker 网络的基本知识,可以通过以下教程进一步深入理解: - [独立网络教程][11] - [主机网络教程][12] - [重叠网络教程][13] - [Macvlan 网络教程][14] [1]:/docs/network/drivers/bridge/ [2]:/docs/network/drivers/host/ [3]:/docs/network/drivers/overlay/ [4]:/docs/network/drivers/ipvlan/ [5]:/docs/network/drivers/macvlan/ [6]:/docs/network/drivers/none/ [7]:https://docs.docker.com/engine/extend/plugins_network/ [11]:https://docs.docker.com/engine/network/tutorials/standalone/ [12]:https://docs.docker.com/engine/network/tutorials/host/ [13]:https://docs.docker.com/engine/network/tutorials/overlay/ [14]:https://docs.docker.com/engine/network/tutorials/macvlan/