2014-02-12 4 views
1

Мое веб-приложение требует как сервера mysql, так и redis для правильной работы. Я могу связать MySQL контейнер с приложением, используя ссылку тег (MySQL является имя набора MySQL изображения с помощью тега -name)Использование Redis и mysql с контейнером-докерером

sudo docker run -link mysql:amq -d -p 13310 hitesh/image node app 

Теперь я не знаю, как прикрепить Redis к этому контейнеру. Должно ли это быть сделано через одно и то же изображение mysql (если да, то как будут отображаться два порта, то есть 3306 & 6379?), Или я должен сделать другой контейнер для redis и связать его с моим приложением node.js (не уверен, что это возможно или нет).

ответ

0

Вы должны иметь 3 контейнера

  1. приложение
  2. ваш MySQL
  3. ваши Redis

затем подвергать MySQL порт и порт Redis на соответствующих контейнерах.

Тогда при запуске приложения контейнера просто ссылка как MySQL и Redis контейнеров для вашего приложения

так что-то вроде

sudo docker run -d -link mysql:mysql -link redis:redis .... 

Теперь ваше приложение контейнера будет иметь переменные среды для двух других баз данных

Кроме того, если вы хотите открыть два порта, то в вашем файле докере просто сделайте ЭКСПОЗИЦИЮ port1 port2

eg EXPOSE 22 80

Затем вы получите переменные окружения для обоих открытых портов. Но я бы рекомендовал, чтобы у вас не было контейнера, который запускает как mysql, так и redis. Отделите свои проблемы :)

+0

Я пробовал это, но переменные среды arent изменились относительно параметра second -link. Вы уверены, что это сработает? Индивидуально оба mysql и redis работают нормально. Используемая команда >>> sudo docker run -link mysql: amq -link redis: amq -i -t -p 13310 hitesh/image/bin/bash – Hitesh

+0

Он должен работать, ссылаясь на https://groups.google.com/forum/#! msg/docker-user/Do0J26F-vS8/tEAvSeUdDY4J – TheStoneFox

+0

не повезло. его просто игнорируют последнюю ссылку. – Hitesh

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