网络驱动
目录
Docker 的网络子系统是可插拔的,它使用驱动。默认提供了几个驱动,提供了核心网络功能。
bridge
:默认网络驱动。如果您未指定驱动,则创建的就是此类网络。Bridge 网络通常用于应用程序在容器中运行,且该容器需要与同一主机上的其他容器通信的场景。请参阅Bridge 网络驱动。host
:移除容器与 Docker 主机之间的网络隔离,直接使用主机的网络。请参阅Host 网络驱动。overlay
:Overlay 网络将多个 Docker 守护进程连接在一起,使 Swarm 服务和容器能够在节点间通信。这种策略无需进行操作系统级别的路由。请参阅Overlay 网络驱动。ipvlan
:IPvlan 网络让用户完全控制 IPv4 和 IPv6 地址。VLAN 驱动在此基础上构建,允许操作员完全控制第 2 层 VLAN 标记,甚至 IPvlan L3 路由,适用于对底层网络集成感兴趣的用户。请参阅IPvlan 网络驱动。macvlan
:Macvlan 网络允许您为容器分配 MAC 地址,使其在网络上看起来像一个物理设备。Docker 守护进程通过容器的 MAC 地址路由流量。对于期望直接连接到物理网络而不是通过 Docker 主机的网络堆栈路由的旧版应用程序,使用 `macvlan` 驱动有时是最佳选择。请参阅Macvlan 网络驱动。none
:将容器与主机和其他容器完全隔离。`none` 不适用于 Swarm 服务。请参阅None 网络驱动。网络插件:您可以安装和使用第三方网络插件与 Docker 配合使用。
网络驱动摘要
- 默认的 bridge 网络适用于运行不需要特殊网络功能的容器。
- 用户定义的 bridge 网络使同一 Docker 主机上的容器能够相互通信。用户定义的网络通常为一个共同项目或组件的多个容器定义一个隔离网络。
- Host 网络与容器共享主机网络。使用此驱动时,容器的网络不会与主机隔离。
- 当您需要运行在不同 Docker 主机上的容器相互通信,或多个应用程序使用 Swarm 服务协同工作时,Overlay 网络是最佳选择。
- Macvlan 网络在您从虚拟机设置迁移,或需要容器在网络上看起来像物理主机(每个都有唯一的 MAC 地址)时是最佳选择。
- IPvlan 类似于 Macvlan,但不为容器分配唯一的 MAC 地址。当网络接口或端口可以分配的 MAC 地址数量受到限制时,请考虑使用 IPvlan。
- 第三方网络插件允许您将 Docker 与专用网络堆栈集成。
网络教程
现在您已经了解了 Docker 网络的基础知识,请通过以下教程加深您的理解: