#在主机上创建目录以存储MIKOPBX数据
mkdir -p /var/spool/mikopbx/cf
#用于存储通话记录和旁白
mkdir -p /var/spool/mikopbx/storage
#拉取镜像
docker pull ghcr.io/mikopbx/mikopbx-x86-64
#在特权模式下运行mikopbx(SSH端口23):
docker run --privileged --cap-add=NET_ADMIN --net=host --name mikopbx \
-v /var/spool/mikopbx/cf:/cf \
-v /var/spool/mikopbx/storage:/storage \
-e SSH_PORT=23 \
-it -d --restart always ghcr.io/mikopbx/mikopbx-x86-64
#不是特权模式。用户和组“www-data”必须存在于系统中:
docker run --cap-add=NET_ADMIN --net=host --name mikopbx \
-v /var/spool/mikopbx/cf:/cf \
-v /var/spool/mikopbx/storage:/storage \
-e SSH_PORT=23 \
-e ID_WWW_USER="$(id -u www-data)" \
-e ID_WWW_GROUP="$(id -g www-data)" \
-it -d --restart always ghcr.io/mikopbx/mikopbx-x86-64
#说明
fail2ban和iptables需要NET_ADMIN标志才能在容器内工作
--net=host标志表示 NAT 不会用于新容器。容器应该占用的所有端口都将在主机上被占用。文档中的更多详细信息...如果主机上的某些端口被占用,则加载 MikoPBX 时可能会出现错误。
以下是允许您调整 MikoPBX 使用的端口的环境变量:
SSH_PORT - SSH 端口(22)
WEB_PORT - 通过 HTTP 协议进行 Web 界面操作的端口 ( 80 )
WEB_HTTPS_PORT - 通过 HTTPS 协议进行 Web 界面操作的端口 ( 443 )
SIP_PORT - 用于连接 SIP 客户端的端口 ( 5060 )
RTP_FROM - RTP 端口范围的开始,语音传输(10000)
RTP_TO - RTP 端口范围结束,语音传输 ( 10200 )
IAX_PORT - 用于连接 IAX 客户端的端口 ( 4569 )
AMI_PORT - AMI 端口(5038)
AJAM_PORT - AJAM 端口用于连接 1C ( 8088 )的电话面板
AJAM_PORT_TLS - AJAM 端口用于连接 1C ( 8089 )的电话面板
BEANSTALK_PORT - Beanstalkd队列服务器的端口( 4229 )
REDIS_PORT - Redis服务器的端口( 6379 )
GNATS_PORT - gnatsd服务器的端口(4223)
ID_WWW_USER - www 用户 ID(可以使用表达式"$(id -u www-data)"设置,其中 www-data 是非root用户的名称)
ID_WWW_GROUP - www 组标识符(可以使用表达式"$(id -g www-data)"设置,其中 www-data 是非root用户的名称)
#docker-compose.yml
version: "3.9"
services:
mikopbx:
container_name: "mikopbx"
image: "ghcr.io/mikopbx/mikopbx-x86-64"
network_mode: "host"
command: '-d'
cap_add:
- NET_ADMIN
volumes:
- /var/spool/mikopbx/cf:/cf
- /var/spool/mikopbx/storage:/storage
# environment:
## 将标准SSH端口更改为23
# - SSH_PORT=23
##将标准SSH端口更改为81
# - WEB_PORT=81
# DAHDI不是必须的。它是在电话面板中运行MeetMe所必需的
# devices:
# - "/dev/dahdi/transcode:/dev/dahdi/transcode"
# - "/dev/dahdi/channel:/dev/dahdi/channel"
# - "/dev/dahdi/ctl:/dev/dahdi/ctl"
# - "/dev/dahdi/pseudo:/dev/dahdi/pseudo"
# - "/dev/dahdi/timer:/dev/dahdi/timer"
容器中没有与核心兼容的DAHDI主机模块。因此,如果您需要Meetme会议功能,那么DAHDI需要手动将系统组装到主机上
#连接到PBX控制台的命令
docker exec -it mikopbx sh
#连接到ATS控制台菜单的命令
docker exec -it mikopbx /etc/rc/console_menu
官方wiki:
Руководство по MikoPBX [MikoPBX WIKI]https://wiki.mikopbx.ru/