Docker群体链接
我想创build一个运行弹性search实例,MongoDB实例和Grails应用程序的Docker Swarm集群,每个集群都在一台独立的机器上运行。 我使用Docker Machine来设置我的Docker Swarm集群
蜂拥而上,01:
MongoDB的
mongodb_ambassador蜂拥而上-02:
elasticsearch
elasticsearch_ambassador蜂拥而上-03:
mongodb_ambassador
elasticsearch_ambassador
Grails的
我的设置的最后一步,运行实际的grails应用程序,使用以下命令:
docker run -p 8080:8080 -d --name grails-master --volumes-from maven --link mongo:mongo-master --link es:es-master my-grails-image
失败,错误:
守护进程的错误响应:无法find满足所有依赖关系的节点:–volumes-from = maven –link = mongo:mongo-master –link = es:es-master
大使容器和Maven数据容器都在同一个节点上运行。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 74677dad09a7 svendowideit/ambassador "/bin/sh -c 'env | gr" 18 minutes ago Up 18 minutes 9200/tcp, 9300/tcp swarm-03/es 98b38c4fc575 svendowideit/ambassador "/bin/sh -c 'env | gr" 18 minutes ago Up 18 minutes 27107/tcp swarm-03/mongo 7d45fb82eacc debian:jessie "/bin/bash" 20 minutes ago swarm-03/maven
我无法获得在Swarm集群上运行的Grails应用程序; 任何意见,将不胜感激。 在一台机器上运行所有容器的工作,所以我想我是一个错误的连接mongo和ES实例的Grails应用程序。
顺便说一句,我正在使用OS X最新的Docker Toolbox安装。
docker中不build议使用“链接”。 不要使用它。 这是复杂的,不够灵活。 只需创build群集模式的覆盖networking。
docker network create -d overlay mynetwork
在群模式下(即使在单容器模式下),只需将每个与另一个服务通信的服务添加到同一个networking即可。
docker service create --network mynetwork --name mymongodb ...
同一networking中的其他服务可以通过主机名mymongodb
访问您的mongodb服务。 就这样。 Docker群模式包含电池。