How the Weave Net Docker Network Plugins Work
The Weave Net legacy plugin actually provides two network drivers to Docker –
one named weavemesh
that can operate without a cluster store and another one
named weave
that can only work with one (like Docker’s overlay driver), while
the V2 plugin provides one – weaveworks/net-plugin:latest_release
operating only in swarm mode.
weavemesh driver
- Weave Net handles all co-ordination between hosts (referred to by Docker as a “local scope” driver)
- Supports a single network only. A network named
weave
is automatically created for you. - Uses Weave Net’s partition tolerant IPAM
If you do create additional networks using the weavemesh
driver, containers attached to them will be able to communicate with containers attached to weave
. There is no isolation between those networks.
weave driver
- This runs in what Docker calls “global scope”, which requires an external cluster store
- Supports multiple networks that must be created using
docker network create --driver weave ...
- Used with Docker’s cluster-store-based IPAM
There’s no specific documentation from Docker on using a cluster
store, but the first part of
Getting Started with Docker Multi-host Networking is a good place to start.
Note: In the case of multiple networks using the
weave
driver, all containers are on the same virtual network but Docker allocates their addresses on different subnets so they cannot talk to each other directly.
The plugin accepts the following options via docker network create ... --opt
:
-
works.weave.multicast
– tells weave to add a static IP
route for multicast traffic onto its interface.
Note: If you connect a container to multiple Weave networks, at
most one of them can have the multicast route enabled. Theweave
network created when the plugin is first launched has the multicast
option turned on, but for any networks you create it defaults to off.
weaveworks/net-plugin:latest_release driver
- The driver runs within the plugin V2.
- Requires Docker to run in swarm mode.
- Supports multiple networks.
- Used with Docker’s IPAM.
See Also