2

我正在阅读一篇文章编织网驱动程序并尝试使用它。我能够weavemesh在单个主机上使用默认驱动程序进行容器到容器的通信。当我尝试使用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)

现在,正如我从Docker 多主机网络入门的docker 文档中了解到的那样,它需要配置一个键值存储。我想知道我的理解是否正确?有没有办法通过网络创建多个网络weave来实现网络隔离。我希望能够将一个容器的网络流量与在同一个盒子上运行的另一个容器隔离开来。

最近有一个没有集群存储插件的新weave 1.4 plugin docker 网络公告,它说它支持没有外部集群存储的 docker 网络。它是如何工作的。它是否可以用来创建多个网络还不是很清楚weave

4

1 回答 1

2

这个问题问:

您是否使用 --cluster-store 启动了 docker 守护进程?

使用和$peers启动 docker 时,您需要传递对等 ips 来编织启动路由器。--cluster-store--cluster-advertise

该文档提到:

Weave 插件实际上为 Docker 提供了两个网络驱动程序

  • weavemesh一个可以在没有集群存储的情况下运行的命名,并且
  • weave一个只能与一个一起工作的命名(如 Docker 的覆盖驱动程序)。

因此需要先建立一个键值对存储

如果您使用的是weave插件,那么您的理解是正确的。

PR 1738具有更多关于新 weave 1.4+ 的功能,无需weavemesh驱动程序的密钥库即可运行。它的文档确实提到

如果您确实使用weavemesh驱动程序创建了其他网络,则附加到它们的容器将能够与附加到 weave 的容器进行通信;这些网络之间没有隔离。

但是PR 1742仍然打开“允许用户为每个 docker 主机指定子网范围”。

于 2016-01-26T07:48:42.477 回答