2016-09-24 3 views
2

Мне удалось запустить docker-compose.yml с помощью док-машины. У меня проблема с масштабированием. Пытается масштабировать приложение node.js, использующее порт 3000. Как я могу масштабировать сервис-докере? Я знаю, что могу использовать docker-compose scale web=3 в рое 1 узла (сервера), но это не работает, потому что я указал порт 3000, что приводит к конфликту.Развертывание docker-compose в качестве yml для масштабирования с использованием того же порта

Как я могу заставить его работать динамически, не прибегая к использованию 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 

ответ

2

Как вы на самом деле ОБЯЗАТЕЛЬНОЕ к хозяину, это не было бы возможным без прокси или балансировки нагрузки.

Смотрите этот вопрос по этой теме через GitHub, где пользователь задавал подобный вопрос:

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

Вот пример того, как вы можете сделать это с помощью балансировки нагрузки, что делает его легко:

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

+0

Благодарим вас за отзыв. Я надеялся быть немного ленивым, но я возьму ваш совет и добавлю балансировку нагрузки к уравнению. –

+0

NP! Я думаю (надеюсь), что вы будете счастливы в конечном итоге. Я бы рекомендовал этот балансировщик нагрузки, так как он может обновлять свою конфигурацию при масштабировании по шкале услуг: https://hub.docker.com/r/dockercloud/haproxy/. Это тот же LB Docker, который используется на их официальном Docker Cloud. –

+0

Прохладный. Это выглядит многообещающим от подглядывания на docker-compose.yml на демо-ссылке выше. –

 Смежные вопросы

  • Нет связанных вопросов^_^