运行 多个 docker-compose(每台机器一个)

Run multiple docker-compose (one per machine)

我正在测试很多微服务。 我将其中一些分组在一个 docker-compose 文件中,例如:

agent:
  image: php:fpm
  volumes:
    - ./GIT:/reposcm:ro
  expose:
    - 9000
  links:
    - elastic

elastic:
  image: elasticsearch
  expose:
    - 9200
    - 9300

然后我开始第一个$docker-compose up

在另一个目录中,我将通过 $docker-compose up 启动另一个 "micro-service"。但我得到:

ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.

如何为 docker-compose.yml 指定 docker 机器?

$docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default   -        virtualbox   Running   tcp://192.168.99.101:2376
my_test   -        virtualbox   Running   tcp://192.168.99.102:2376

只有 default 机器可以 运行 一个 "micro-service"。

如何指定docker-compose.yml的目标机器?

确保在 shell 中你想要 运行 你的第二个 docker-compose up,你已经完成了第一个 docker-machine env:

docker-machine env <machine name>
eval "$(docker-machine env <machine name>)

这将为 docker 配置 right environment variables 命令以联系正确的机器(正确的 docker 守护进程)。