我正在阅读一篇文章weave net driver并正在尝试着它。我能够在单个主机上使用默认的weave
驱动程序进行容器到容器的通信。当我尝试使用[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)
网络驱动程序插件创建多个网络时,会出现此问题。我收到以下错误。
weave
现在,正如我在Getting Started with Docker Multi-host Networking的docker文档中所理解的那样,它需要配置一个键值存储。我想知道我的理解是否正确?有没有办法在weave 1.4 plugin
网络上创建多个网络以实现网络隔离。我希望能够将一个容器的网络流量与运行在同一个盒子上的另一个容器隔离开来。
最近发布了一个新的weave
docker networking without cluster store plugin声明,表示它支持没有外部群集存储的docker网络。它是如何工作的。如果它可以用于在string.Join
上创建多个网络,那就不太清楚了。
答案 0 :(得分:2)
This issue问道:
您是否使用--cluster-store启动了docker守护程序?
在使用
$peers
和--cluster-store
启动docker时,您需要通过peer ips来编织launch-router--cluster-advertise
。
该文件提到:
Weave插件实际上为Docker提供了两个网络驱动程序
- 一个可以在没有群集存储的情况下运行的
weavemesh
和- 一个名为
weave
但只能使用一个(如Docker的覆盖驱动程序)。
因此首先需要Set up a key-value store。
如果您使用的是weave
插件,那么您的理解是正确的。
PR 1738更多关于新编织1.4+操作而无使用weavemesh
驱动程序的密钥库的能力。 Its doc does mention:
如果您使用
weavemesh
驱动程序创建其他网络,则连接到它们的容器将能够与连接到编织的容器进行通信;这些网络之间没有隔离。
但PR 1742仍处于打开状态"允许用户为每个泊坞主机指定子网范围"。