使用swarm将Spring云应用部署到docker集群
我知道这个问题听起来很模糊,但我会尽力解释我的问题陈述 我有一个Spring云应用程序(使用Netflix Eureka作为服务发现),具有多个服务,它们部署在docker容器中,容器使用docker compose链接和旋转,单容器部署一切正常,但问题是自动扩展单个服务/容器,即拥有单个服务的多个容器,因为我的容器与端口绑定,所以docker compose scale将不起作用 我在谷歌上搜索过,发现我可以使用负载均衡器和具有不同端口的容器来提供服务,但我不希望这样,因为我使用的是客户端负载平衡使用swarm将Spring云应用部署到docker集群,docker,docker-compose,spring-cloud,Docker,Docker Compose,Spring Cloud,我知道这个问题听起来很模糊,但我会尽力解释我的问题陈述 我有一个Spring云应用程序(使用Netflix Eureka作为服务发现),具有多个服务,它们部署在docker容器中,容器使用docker compose链接和旋转,单容器部署一切正常,但问题是自动扩展单个服务/容器,即拥有单个服务的多个容器,因为我的容器与端口绑定,所以docker compose scale将不起作用 我在谷歌上搜索过,发现我可以使用负载均衡器和具有不同端口的容器来提供服务,但我不希望这样,因为我使用的是客户端负载
有人能建议我如何为一项服务自动旋转多个容器吗?请记住,容器可以使用其服务名称相互通信。回答我的问题可能会对某人有所帮助 由于我使用的是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没有在上面格式化。如果您使用的是Eureka,为什么容器使用的是哪个端口,甚至是主机?它将在Eureka注册并使用相同的服务名称,然后其他服务可以使用Eureka查找该服务的所有地址。@RyanBaxter,你是对的,我们可以这样做,但我一直在寻找一种方法来实现这一点,使用docker compose和swarmI知道如果你将容器链接在一起,链接容器的主机名将放在主机文件中,但这不是eureka提供的sam was服务发现。Hi@Apollo有了这一更改,你可以使用say?@Tatha从zuul路由到web应用程序吗,以上配置用于链接docker容器并支持在同一台机器上旋转多个容器,有关路由配置,请参阅