将docker-compose部署为yml以便能够使用相同的端口进行扩展

我已经成功设法使用docker-machine部署docker-compose.yml。 我遇到的问题是缩放。 尝试缩放使用端口3000的node.js应用程序。如何缩放docker-compose服务。 我知道我可以在一个节点(服务器)群中使用docker-compose scale web=3 ,但这不起作用,因为我指定了端口3000,这导致冲突。

我怎样才能使它dynamic工作,而不诉诸使用HAProxy或Nginx?

Dockerfile

 FROM node:wheezy # replace this with your application's default port EXPOSE 3000 ADD . /install WORKDIR /install ENV NODE_PATH /usr/local/lib/node_modules/ RUN npm install -g $(cat packages) && rm -rf npm_cache /tmp/* && npm install # Install node modules and start CMD ["npm", "install"] CMD ["node", "."] 

泊坞窗,compose.yml

 version: "2" services: web: build: . ports: - "3000:3000" links: - mongo environment: - "affinity:image==node:wheezy" mongo: image: mongo volumes: - ./appdb:/data/db volumes: mongo-data: driver: local 

由于您实际上是绑定到主机,所以没有代理或负载均衡器就不可能。

通过GitHub在这个话题上看到这个问题,其中一个用户正在问一个类似的问题:

https://github.com/docker/compose/issues/3088

下面是一个如何使用负载平衡器来实现的例子,使其变得简单:

https://github.com/vegasbrianc/docker-compose-demo/blob/master/docker-compose.yml