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

时间:2016-09-24 10:57:15

标签: docker docker-compose docker-machine docker-swarm

我已成功设法使用docker-machine部署docker-compose.yml。我遇到的问题是缩放。尝试扩展使用端口3000的node.js应用程序。如何扩展docker-compose服务。我知道我可以在1个节点(服务器)的群中使用{ "version": "0.2.0", "configurations": [ { "name": "Python", "type": "python", "request": "launch", "stopOnEntry": true, "pythonPath": "C:/Users/Sanghun/AppData/Local/Programs/Python/Python35-32/python.exe", "program": "${file}", "debugOptions": [ "WaitOnAbnormalExit", "WaitOnNormalExit", "RedirectOutput" ] }, ,但这不起作用,因为我指定了端口3000,这会导致冲突。

如何在不诉诸HAProxy或Nginx的情况下以动态方式使其工作?

Dockerfile

docker-compose scale web=3

搬运工-compose.yml

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", "."]

1 个答案:

答案 0 :(得分:2)

由于您实际上与主机绑定,因此没有代理或负载均衡器就无法实现。

通过GitHub在该主题上查看此问题,其中用户提出类似问题:

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

下面是一个如何使用负载均衡器进行操作的示例,使其变得简单:

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