Docker 网络驱动插件

本文档描述了 Docker Engine 中通常可用的 Docker Engine 网络驱动程序插件。要查看 Docker Engine 管理的插件信息,请参阅Docker Engine 插件系统

Docker Engine 网络插件使 Engine 部署能够扩展以支持广泛的网络技术,例如 VXLAN、IPVLAN、MACVLAN 或完全不同的技术。网络驱动程序插件通过 LibNetwork 项目支持。每个插件都被实现为 LibNetwork 的“远程驱动程序”,它与 Engine 共享插件基础架构。实际上,网络驱动程序插件的激活方式与其他插件相同,并使用相同类型的协议。

网络插件和 Swarm 模式

旧版插件在 Swarm 模式下不起作用。然而,使用v2 插件系统编写的插件可以在 Swarm 模式下工作,只要它们安装在每个 Swarm 工作节点上即可。

使用网络驱动插件

安装和运行网络驱动程序插件的方法取决于特定的插件。因此,请务必按照插件开发人员提供的说明安装您的插件。

然而,一旦运行,网络驱动程序插件的使用就像内置网络驱动程序一样:在面向网络的 Docker 命令中被称为驱动程序。例如,

$ docker network create --driver weave mynet

插件中列出了一些网络驱动插件

mynet网络现在属于weave,因此引用该网络的后续命令将被发送到插件,

$ docker run --network=mynet busybox top

查找网络插件

网络插件由第三方编写,并由这些第三方在 Docker Hub 或第三方网站上发布。

编写一个网络插件

网络插件实现了 Docker 插件 API和网络插件协议

网络插件协议

除了插件激活调用之外,网络驱动程序协议也记录为 libnetwork 的一部分: https://github.com/moby/moby/blob/master/libnetwork/docs/remote.md

要与 Docker 维护者和其他感兴趣的用户互动,请参阅 IRC 频道#docker-network