如何运行docker-compose对docker群(没有docker-machine)

我已经成功地在官方教程之后设置了一个docker swarm(例如:不使用docker-machine)

我能够使用docker引擎成功地在群集上运行容器:

docker -H :4000 run redis 

我想用docker-compose在swarm上运行容器,但我似乎无法得到这个权利。

我必须要做的第一件事是如何在端口:4000 。 我通过指定: export DOCKER_HOST=":4000"

但是,现在,当我运行docker-compose时,出现以下错误:

 $docker-compose up Creating network "root_default" with the default driver ERROR: 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) 

感觉这个问题与TLS或networking有关,但是我很难理解如何解决这个问题,甚至不知道如何进一步调查。

我使用的是Docker引擎:1.10,Compose 1.6。 蜂拥而上:最新

万一它是有用的,这里是我的docker信息:

 $docker -H :4000 info Containers: 7 Running: 5 Paused: 0 Stopped: 2 Images: 7 Server Version: swarm/1.2.0 Role: primary Strategy: spread Filters: health, port, dependency, affinity, constraint Nodes: 2 node02: 10.129.5.211:2375 └ Status: Healthy └ Containers: 3 └ Reserved CPUs: 0 / 2 └ Reserved Memory: 0 B / 2.053 GiB └ Labels: executiondriver=, kernelversion=3.13.0-79-generic, operatingsystem=Ubuntu 14.04.4 LTS, storagedriver=aufs └ Error: (none) └ UpdatedAt: 2016-04-15T08:28:20Z └ ServerVersion: 1.11.0 node03: 10.129.6.21:2375 └ Status: Healthy └ Containers: 4 └ Reserved CPUs: 0 / 2 └ Reserved Memory: 0 B / 2.053 GiB └ Labels: executiondriver=, kernelversion=3.13.0-79-generic, operatingsystem=Ubuntu 14.04.4 LTS, storagedriver=aufs └ Error: (none) └ UpdatedAt: 2016-04-15T08:28:43Z └ ServerVersion: 1.11.0 Plugins: Volume: Network: Kernel Version: 3.13.0-79-generic Operating System: linux Architecture: amd64 CPUs: 4 Total Memory: 4.105 GiB Name: b156985db557 Docker Root Dir: Debug mode (client): false Debug mode (server): false WARNING: No kernel memory limit support 

我在生产中使用Docker 1.10,Docker Swarm,Docker Compose。

我以前遇到过同样的问题。 我通过下面的步骤解决了它:

第1步: export DOCKER_HOST=tcp://localhost:4000

步骤2:通过命令docker info (不带-H)validationDocker Swarm。 如果不行,确保Swarm Manager正在处理您的主机。

第3步:如果第2步是确定的。 在Docker Compose docker-compose up上运行你的应用程序

我遇到了同样的问题,并在这里find答案: https : //groups.google.com/a/weave.works/forum/m/#!topic/weave-users/Mf6fv9OEdE

固定的是:

为了使它与docker-compose 2一起工作,你应该添加:

 network_mode: "bridge" 

到所有的服务定义。

要删除上面的错误,你需要像这样在每个节点上运行docker deamon

docker run -d -p 4000:4000 swarm manage -H:4000 –replication –advertise 192.168.56.103:4000 consul://192.168.56.101:8500