Запуск Asterisk и его базы данных mysql в разных контейнерах докеров

Если я правильно понял использование и назначение докера, каждый процесс должен находиться внутри своего собственного контейнера, не мешая, таким образом, другим запущенным процессам.

Исходя из этого, я хотел бы запустить сервер PBX Asterisk в одном контейнере, базу данных mysql в другом контейнере, а в третьем контейнере я хотел бы запустить графический интерфейс FreePBX для Asterisk.

Запуск каждой из этих служб в своем собственном контейнере не является проблемой, но как мне впоследствии соединить эти три вместе, так как мне нужна база данных mysql для регистрации вызовов с использованием переменных CDR, а FreePBX должен быть установлен, чтобы обеспечить работу графического интерфейса для конфигурации Asterisk. .

Любые советы приветствуются, спасибо.


person Community    schedule 15.06.2015    source источник
comment
Связывая контейнеры (используя docker run --link), вы увидите в одном контейнере открытые порты другого.   -  person gmuslera    schedule 19.06.2015
comment
Спасибо gmuslera, попробую.   -  person    schedule 22.06.2015


Ответы (1)


Вам обязательно стоит попробовать docker-compose. Этот инструмент поможет вам легко открыть один контейнер другому.

Ваш пример с docker-compose.yml может выглядеть так:

db:
   image: mysql:5
   environment:
     - MYSQL_PASSWORD=pass
     - MYSQL_USER=asterisk
     - MYSQL_DATABASE=freepbx

asterisk:
  image: asterisk
  links:
    - db

freepbx:
   image: php5-apache
   links:
     - db
   volumes-from:
     - asterisk

Это создаст 3 контейнера, первый для БД, второй для самого asterisk, третий для freepbx. Образ Asterisk и freepbx сможет подключаться к хосту базы данных. Также freepbx будет иметь доступ к томам, которые публикуются внутри asterisk, например, к логам для разбора или файлам конфигурации.

person Max Prokopov    schedule 18.12.2015