部署 docker-compose as yml 以便能够使用同一端口进行扩展
Deploying docker-compose as yml in order to be able to scale using the same port
我已经使用 docker-机器成功部署了 docker-compose.yml。我遇到的问题是缩放。尝试扩展使用端口 3000 的 node.js 应用程序。如何扩展 docker-compose 服务。我知道我可以在 1 个节点(服务器)的集群中使用 docker-compose scale web=3
但这不起作用,因为我指定了端口 3000,这会导致冲突。
如何在不使用 HAProxy 或 Nginx 的情况下使其以动态方式工作?
Docker 文件
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", "."]
docker-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
我已经使用 docker-机器成功部署了 docker-compose.yml。我遇到的问题是缩放。尝试扩展使用端口 3000 的 node.js 应用程序。如何扩展 docker-compose 服务。我知道我可以在 1 个节点(服务器)的集群中使用 docker-compose scale web=3
但这不起作用,因为我指定了端口 3000,这会导致冲突。
如何在不使用 HAProxy 或 Nginx 的情况下使其以动态方式工作?
Docker 文件
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", "."]
docker-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