4.1.1. 前言
Docker 容器和服务如此强大打原因之一是你可以将他们连接在一起,或者将他们连接到非 Docker 工作负载。Docker 容器和服务甚至不需要知道他们部署在 Docker 上,或者他们的对等体是否也是 Docker 工作负载。无论 Docker 是运行在 Linux、Windows或者两者兼之,你都可以使用 Docker 已与平台无关的 方式管理他们。
4.1.2. 网络驱动
Docker 的网络子系统是可拔插的,使用的是驱动程序。默认情况下存在多个驱动程序,并提供核心的网络功能。
bridge
:是默认的网络驱动。如果你不指定一个网络驱动,该类型驱动会默认创建。当你在运行独立容器时,bridge
常常用于容器之间的网络通信。host
:对于独立容器,你可以删除容器与主机之间的隔离,并直接使用该类型的主机网络通信。host
仅适用于 Dockerv17.06
及更高版本的swarm
服务。overlay
:网络将多个 Docker 服务器(Docker Daemon)连接在一起,并使集群服务能否相互通信。你也可以直接使用overlay
网络在 Swarm 服务 与独立容器之间通信,或者在两个不同的 Docker Daemon 的独立容器之间的网络通信。此策略无需在这些容器之间执行OS级别的路由。macvlan
:网络允许你为容器分配MAC地址,使其显示为网络上的物理设备。Docker守护程序通过其MAC地址将流量路由到容器。在处理想要直接连接到物理网 络的传统应用程序时,使用macvlan
驱动程序有时是最佳选择,而不是通过Docker主机的网络堆栈进行路由。none
:对于此容器,禁用所有网络。通常与自定义网络驱动程序一起使用。none
不适合在 swarm 服务之间使用。
4.1.3. 驱动说明
bridge
网络分为默认与自定义网络。在同一 Docker 主机的多个容器之间使用自定义的bridge
网络优于默认的bridge
网络,也是推荐使用的bridge
。- 当网络堆栈不应与Docker主机隔离时,但希望隔离容器的其他方面时,
host
网络最佳。 - 在不同的 Docker 主机之间通信或者在使用 Swarm 服务时
overlay
网络是最佳选择。 - 当你从VM设置迁移或需要你的容器看起来像网络上的物理主机时,每个都具有唯一的MAC地址。
MacLan
网络是最佳选择。