如何使用Docker创build覆盖networking?
当我尝试使用Docker创build覆盖networking时,出现以下错误:
docker@boot2docker:/vagrant$ docker network create --driver overlay somenetwork 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)`
我在GitHub上发现了这个bug报告: https : //github.com/docker/docker/issues/18770
我检查了我的Boot2Docker镜像,它使用的是sysvinit而不是systemd,所以这不应该是一个问题,而且内核版本似乎是好的:
docker@boot2docker:/vagrant$ uname -r 4.1.19-boot2docker
是否有可能这是滥用覆盖networking概念,我试图运行这只在一个主机上…? 也许这会导致奇怪的错误?
更新:我认为执行networking创build命令到本地运行的docker守护进程是错误的。 我认为我应该这样做,而不是我的swarm经理 – 在这种情况下,错误消息是不同的:
docker@boot2docker:~$ docker -H tcp://0.0.0.0:3375 network create --driver overlay network Error response from daemon: No healthy node available in the cluster
当我检查群集的状态时,确实没有节点。 也许原来的问题是我的群连接命令是不完全正确的?
docker run -d swarm join consul://127.0.0.1:8500/
如果你仔细阅读覆盖networking的文档 ,你会发现为了创build一个覆盖networking,你首先需要configuration一个键/值存储(Docker目前支持etcd,consul和zookeeper),Docker使用它来协调多个主机之间的事情。
从文档:
要创build覆盖networking,可以在每个Docker引擎上的守护进程上configuration选项以用于覆盖networking。 有三个选项可供select:选项说明
--cluster-store=PROVIDER://URL
介绍KV服务的位置。
--cluster-advertise=HOST_IP|HOST_IFACE:PORT
用于集群的HOST的IP地址或接口。
--cluster-store-opt=KEY-VALUE OPTIONS
诸如TLS证书或调优发现定时器之类的选项
从你的问题,这听起来不像你已经执行了必要的configuration。
正如更新build议..
.. 问题是 ..
你的swarm连接命令。
解决scheme可以是..
docker run swarm join --addr=192.168.196.16:2375 token://`cat swarm_id`
假设你使用一个标记创build了swarm。 至于我,我宁愿使用静态文件。
你会在这个答案中find你需要的一切。
- Docker返回“json:can not unmarshal string into Go value of type string”
- Dockerfile:将RUN指令输出到variables中
- 使用Cisco VPN AnyConnect时,无法使Docker计算机使用virtualbox
- 在dockerfile中定义资源限制和使用卷?
- 如何运行一个简单的主要方法,并复制它使用docker生成的文件
- docker-swarm错误:客户端和服务器没有相同的版本(客户端:1.18,服务器:1.17)
- docker – 撰写卷没有出现在容器中
- 从Docker中的泊坞窗login到专用dockerregistry时发生服务器错误
- Dockerizing Web应用程序(WAR文件)