运行星号和它';不同docker容器中的mysql数据库

运行星号和它';不同docker容器中的mysql数据库,mysql,docker,asterisk,freepbx,Mysql,Docker,Asterisk,Freepbx,如果我正确理解了docker的用途和目的,那么每个进程都应该在自己的容器中,这样就不会干扰其他正在运行的进程 基于此,我想在一个容器中运行Asterisk PBX服务器,在另一个容器中运行mysql数据库,在第三个容器中运行Asterisk的FreePBX GUI 在它自己的容器中运行这些服务中的每一个都不是问题,但是我以后如何将这三个连接在一起,因为我需要mysql db使用CDR变量记录调用,并且应该安装FreePBX来为Asterisk配置提供GUI体验 任何建议都将不胜感激, 谢谢。你绝

如果我正确理解了docker的用途和目的,那么每个进程都应该在自己的容器中,这样就不会干扰其他正在运行的进程

基于此,我想在一个容器中运行Asterisk PBX服务器,在另一个容器中运行mysql数据库,在第三个容器中运行Asterisk的FreePBX GUI

在它自己的容器中运行这些服务中的每一个都不是问题,但是我以后如何将这三个连接在一起,因为我需要mysql db使用CDR变量记录调用,并且应该安装FreePBX来为Asterisk配置提供GUI体验

任何建议都将不胜感激,
谢谢。

你绝对应该尝试一下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个容器,第一个用于DB,第二个用于asterisk本身,第三个用于freepbx。星号和freepbx映像将能够连接到数据库主机。此外,freepbx还可以访问在asterisk中发布的卷,例如,要解析的日志或配置文件。

链接容器(使用docker run--link),您将在一个容器中看到另一个容器的暴露端口。感谢gmuslera,我将尝试一下。