2015-10-09 19:50:41 -04:00
|
|
|
<!--[metadata]>
|
|
|
|
+++
|
|
|
|
title = "Docker network driver plugins"
|
2015-09-30 16:11:36 -04:00
|
|
|
description = "Network driver plugins."
|
2015-10-09 19:50:41 -04:00
|
|
|
keywords = ["Examples, Usage, plugins, docker, documentation, user guide"]
|
|
|
|
[menu.main]
|
2016-01-23 23:36:40 -05:00
|
|
|
parent = "engine_extend"
|
2015-10-09 19:50:41 -04:00
|
|
|
+++
|
|
|
|
<![end-metadata]-->
|
|
|
|
|
2016-01-23 23:36:40 -05:00
|
|
|
# Engine network driver plugins
|
2015-06-17 11:06:39 -04:00
|
|
|
|
2016-01-23 23:36:40 -05:00
|
|
|
Docker Engine network plugins enable Engine deployments to be extended to
|
|
|
|
support a wide range of networking technologies, such as VXLAN, IPVLAN, MACVLAN
|
|
|
|
or something completely different. Network driver plugins are supported via the
|
2015-09-30 16:11:36 -04:00
|
|
|
LibNetwork project. Each plugin is implemented asa "remote driver" for
|
2016-01-23 23:36:40 -05:00
|
|
|
LibNetwork, which shares plugin infrastructure with Engine. Effectively, network
|
|
|
|
driver plugins are activated in the same way as other plugins, and use the same
|
|
|
|
kind of protocol.
|
2015-06-17 11:06:39 -04:00
|
|
|
|
|
|
|
## Using network driver plugins
|
|
|
|
|
2015-09-30 16:11:36 -04:00
|
|
|
The means of installing and running a network driver plugin depend on the
|
|
|
|
particular plugin. So, be sure to install your plugin according to the
|
|
|
|
instructions obtained from the plugin developer.
|
2015-06-17 11:06:39 -04:00
|
|
|
|
|
|
|
Once running however, network driver plugins are used just like the built-in
|
|
|
|
network drivers: by being mentioned as a driver in network-oriented Docker
|
|
|
|
commands. For example,
|
|
|
|
|
2015-09-30 16:11:36 -04:00
|
|
|
$ docker network create --driver weave mynet
|
2015-06-17 11:06:39 -04:00
|
|
|
|
2015-10-09 19:50:41 -04:00
|
|
|
Some network driver plugins are listed in [plugins](plugins.md)
|
2015-06-17 11:06:39 -04:00
|
|
|
|
2015-09-30 16:11:36 -04:00
|
|
|
The `mynet` network is now owned by `weave`, so subsequent commands
|
|
|
|
referring to that network will be sent to the plugin,
|
2015-09-28 21:57:03 -04:00
|
|
|
|
2015-09-30 16:11:36 -04:00
|
|
|
$ docker run --net=mynet busybox top
|
2015-06-17 11:06:39 -04:00
|
|
|
|
|
|
|
|
2015-09-30 16:11:36 -04:00
|
|
|
## Write a network plugin
|
|
|
|
|
|
|
|
Network plugins implement the [Docker plugin
|
|
|
|
API](https://docs.docker.com/extend/plugin_api/) and the network plugin protocol
|
|
|
|
|
|
|
|
## Network plugin protocol
|
|
|
|
|
|
|
|
The network driver protocol, in addition to the plugin activation call, is
|
|
|
|
documented as part of libnetwork:
|
2015-06-17 11:06:39 -04:00
|
|
|
[https://github.com/docker/libnetwork/blob/master/docs/remote.md](https://github.com/docker/libnetwork/blob/master/docs/remote.md).
|
|
|
|
|
2015-09-30 16:11:36 -04:00
|
|
|
# Related Information
|
2015-06-17 11:06:39 -04:00
|
|
|
|
2015-12-17 02:40:10 -05:00
|
|
|
To interact with the Docker maintainers and other interested users, see the IRC channel `#docker-network`.
|
2015-06-17 11:06:39 -04:00
|
|
|
|
2015-09-30 16:11:36 -04:00
|
|
|
- [Docker networks feature overview](../userguide/networking/index.md)
|
|
|
|
- The [LibNetwork](https://github.com/docker/libnetwork) project
|