互联网技术 / 互联网资讯 · 2023年12月27日 0

Docker网络配置概览

Docker网络配置概览

容器和服务之所以强大,是因为它们能够彼此连接,或与其他工作负载对接。它们通常无需知道彼此的部署位置,也不需要了解对等对象是否也是工作负载。无论主机运行 Linux、Windows,还是两者并用,您都可以以跨平台的方式对它们进行管理。

网络驱动程序

网络子系统通过驱动程序实现核心联网功能。默认情况下,存在若干驱动,提供基础的网络能力:

bridge 是默认的网络驱动。若未显式指定驱动,所创建的即为桥接型网络。当应用中的独立容器需要通信时,通常会选择桥接网络。

host 驱动允许容器直接使用主机网络,移除容器与主机之间的网络隔离。

overlay(覆盖)网络能把多个守护进程连接起来,使集群服务能够互相通信,也可用于让集群服务与独立容器、或不同守护进程上的容器之间进行通信。这种方式避免了在这些容器之间进行操作系统层面的路由。

Macvlan 网络允许您为容器分配唯一的 MAC 地址,使其在网络中显示为物理设备。守护进程通过该 MAC 地址把流量路由到容器。对于需要直接接入物理网络、而非通过主机网络栈进行路由的旧有应用,使用 Macvlan 驱动有时是最佳选择。

none:对于此容器,请禁用所有网络功能。通常与自定义网络驱动程序一起使用。none 不适用于集群服务。

网络插件:可以安装和使用第三方网络插件。这些插件可来自官方仓库或第三方供应商。有关如何安装和使用特定网络插件,请参阅供应商文档。

网络驱动程序要点

在同一主机上让多台容器相互通信时,建议使用用户定义的桥接网络。

如果网络栈不需要与主机隔离,但你希望对容器的其他方面进行隔离,则可以选择主机网络。

当需要在不同主机上运行的容器互相通信,或多个应用程序共同使用集群服务时,覆盖网络是最佳选择。

若需要从虚拟机迁移设置,或希望容器在网络中呈现为物理主机的形态,则 Macvlan 网络最适合,因为每个主机都有唯一的 MAC 地址。

第三方网络插件可让你将专用网络堆栈进行集成。