使用swarm

时间:2017-01-24 07:36:17

标签: docker docker-compose spring-cloud

我知道这个问题听起来很模糊,但我会尝试解释我的问题陈述。

我有一个Spring云应用程序(使用Netflix Eureka作为服务发现),有多个服务,它们部署在docker容器中,容器使用docker compose进行链接和旋转,一切工作正常,单个容器部署但问题是自动扩展单个服务/容器,即拥有单个服务的多个容器,因为我的容器与端口绑定,因此docker-compose规模不起作用。

我已经用Google搜索,发现我可以使用负载均衡器并使用不同端口旋转容器进行服务,但我不想要这样,因为事实上我使用客户端负载平衡。

有人可以建议我如何为服务自动旋转多个容器,同时牢记容器可以使用他们的服务名称相互通信。

1 个答案:

答案 0 :(得分:0)

回答我的问题可能会对某人有所帮助。

由于我使用Spring Cloud,因此服务通过提供服务名称向Eureka注册,因此将公共端口绑定到容器没有意义,我在下面使用过docker-compose文件实现扩展,但有可能有更好的方法,但现在它适用于我。

version: '2'
services:
 eureka:
  image: eureka
  container_name: eureka
  ports: 
  - "8761:8761"

zuul:
image: zuul
container_name: zuul
ports:
  - "8080"
depends_on:
  - eureka

webapp:
image: web-app
ports:
  - "6001"
depends_on:
  - eureka

writer:
image: writer
ports:
  - "7001"
depends_on:
  - eureka

recorder:
image: recorder
ports:
  - "9001"
depends_on:
  - eureka
  - mongodb

mongodb:
image: mongo:latest
command: mongod --noprealloc --smallfiles --dbpath /data/db --nojournal --oplogSize 16 --noauth
ports:
  - "27017:27017"
environment:
  TERM: xterm
volumes:
  - /home/user/data/mongo:/data/db

PS:上面没有格式化yaml。