Error in configuring multiple networks using weave network driver plugin for docker

553 Views Asked by At

I am going through an article weave net driver and was trying my hands on it. I was able to use the default weavemesh driver for container-to-container communication on single host. The issue comes when i try to create multiple networks using weave network driver plugin. I get the following error.

[ankit@local-machine]$ docker network create -d weave netA
Error response from daemon: failed to parse pool request for address space "GlobalDefault" pool "" subpool "": cannot find address space GlobalDefault (most likely the backing datastore is not configured)

Now, as i understand from docker documentation at Getting Started with Docker Multi-host Networking , It needs a key value store to be configured. I was wondering if my understanding is correct? Is there any way to create multiple networks over weave network to achieve network isolation. I want to be able to segregate network traffic for one container from another container running on the same box.

There is a new weave 1.4 plugin docker networking without cluster store plugin announcement recently which says it supports docker networking without external cluster store. how does it exactly work. its not very clear if it could be used to create multiple networks over weave.

1

There are 1 best solutions below

5
On BEST ANSWER

This issue asked:

Did you start the docker daemon with --cluster-store?

You need to pass peers ips to weave launch-router $peers when starting docker with --cluster-store and --cluster-advertise.

The doc mentions:

The Weave plugin actually provides two network drivers to Docker

  • one named weavemesh that can operate without a cluster store and
  • one named weave that can only work with one (like Docker’s overlay driver).

Hence the need to Set up a key-value store first.

If you are using the weave plugin, your understanding is correct.

PR 1738 has more on the new weave 1.4+ ability to operate without a keystore with the weavemesh driver. Its doc does mention:

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.

But PR 1742 is still open "Allow user to specify a subnet range for each docker host".