
izdock/izpbx-asteriskizPBX是一个开箱即用的云原生VoIP电话系统,基于Asterisk引擎和FreePBX管理界面构建,旨在提供云和本地环境下快速、自动化、可重复部署的VoIP PBX解决方案。该系统集成了电话引擎、Web管理界面、安全监控工具及多种实用功能,适用于企业级VoIP通信需求。
tcpdump和sngrep用于VoIP呼叫调试izsynth文本转语音(TTS)合成工具、背景音乐叠加器及音频转换器izpbx-callstats等系统状态监控脚本20.16, 20.16.X, 20.16.X-BUILD,20, latest(Asterisk 20 LTS + FreePBX 16)18.16, 18.16.X, 18.16.X-BUILD,18(Asterisk 18 LTS + FreePBX 16)18.15, 18.15.X, 18.15.X-BUILD(Asterisk 18 LTS + FreePBX 15)16.15, 16.15.X, 16.15.X-BUILD(Asterisk 16 LTS + FreePBX 15)dev-20, dev-20.X, dev-20.X.X-BUILDdev-18, dev-18.X, dev-18.X.X-BUILD标签格式:Z.Y.X-[BUILD]
其中:
最新版本可在项目标签页查看。
bash# 安装Docker(以RHEL8为例) sudo dnf config-manager --add-repo=[***] sudo dnf install docker-ce docker compose-plugin -y sudo systemctl enable --now docker # 克隆项目仓库 git clone [***] /opt/izpbx cd /opt/izpbx # 检出最新官方版本 git checkout tags/$(git tag | sort --version-sort | tail -1)
bash# 复制默认配置文件并自定义 cp default.env .env vim .env # 修改安全相关密码及网络配置
bashdocker compose up -d
等待镜像拉取完成(约60秒,取决于网络速度),通过浏览器访问Docker主机IP,按照初始设置向导完成配置。
注意:默认使用
network_mode: host以处理SIP NAT和UDP流量,容器直接暴露到主机网络。如需在同一主机运行多个实例,需修改compose.yml并注释该配置,或使用macvlan网络模式。
如需覆盖默认配置,创建docker-compose.override.yml文件,例如:
yamlversion: '3' services: db: image: docker.io/mariadb:10.11.4 # 自定义数据库版本 izpbx: image: docker.io/izdock/izpbx-asterisk:20.16.7 # 指定izPBX版本
使用docker compose up -d应用配置。
bashdocker run --rm -ti -v ./data/db:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=CHANGEM3 -e MYSQL_PASSWORD=CHANGEM3 \ --name izpbx-db mariadb:10.4
bashdocker run --rm -ti --network=host --privileged --cap-add=NET_ADMIN \ -v ./data/izpbx:/data \ -e MYSQL_ROOT_PASSWORD=CHANGEM3 -e MYSQL_PASSWORD=CHANGEM3 \ -e MYSQL_SERVER=127.0.0.1 -e MYSQL_DATABASE=asterisk \ -e MYSQL_USER=asterisk -e APP_DATA=/data \ --name izpbx izpbx-asterisk:latest
bash# 更新项目代码 cd /opt/izpbx git checkout main git pull git fetch --tags --all -f git checkout tags/$(git tag | sort --version-sort | tail -1) # 拉取最新镜像并重启服务 docker compose pull docker compose up -d # 若数据库版本更新,升级表结构 source .env ; docker exec -it izpbx-db mysql_upgrade -u root -p$MYSQL_ROOT_PASSWORD # FreePBX模块升级(通过Web界面) # 登录FreePBX → 管理员 → 模块管理 → 在线检查 → 升级所有 → 处理
FreePBX仅在首次部署时安装到持久化目录。如需升级FreePBX主版本(如从15到16),需:
/opt/izpbx/data).env中设置FREEPBX_AUTOUPGRADE_CORE=true18.16.x)创建部署目录及配置文件:
bashmkdir /opt/yourgreatpbx && cd /opt/yourgreatpbx vim compose.yml # 编辑以下内容 vim .env # 配置环境变量
compose.yml内容:
yamlversion: '3' networks: izpbx-0-ext: # 外部网络(macvlan) driver: macvlan driver_opts: parent: eth0 # 主机物理网卡 ipam: config: - subnet: 10.1.1.0/24 # 与内网网段匹配 izpbx-1: # 内部桥接网络 driver: bridge services: db: # 专用数据库服务 image: mariadb:10.5.9 restart: unless-stopped env_file: .env volumes: - ./data/db:/var/lib/mysql networks: izpbx-1: izpbx: # PBX服务 image: izdock/izpbx-asterisk:18.15.11 restart: unless-stopped depends_on: [db] env_file: .env volumes: - ./data/izpbx:/data cap_add: [NET_ADMIN] privileged: true networks: izpbx-0-ext: ipv4_address: 10.1.1.221 # 分配独立IP izpbx-1:
启动服务:docker compose up -d,重复上述步骤部署其他实例(需修改IP和目录)。
bash# 重启整个部署 docker compose restart # 重启izpbx容器 docker restart izpbx # 重启数据库容器 docker restart izpbx-db
bash# 进入容器 docker exec -it izpbx bash # 重启Asterisk服务 supervisorctl restart asterisk # 查看所有服务状态 supervisorctl status
支持的服务:asterisk、cron、fail2ban、fop2、httpd、izpbx、tftpd等。
默认环境变量定义在default.env,包括数据库配置、网络端口、安全策略等参数。
集成Asterisk Zabbix代理,监控服务健康状态。配置方法参考官方模板。
bash# 进入容器 docker exec -it izpbx bash # 注册许可证(替换LICENSECODE和Company Name) /usr/local/fop2/fop2_server --rp=http --register --iface eth0 --name "Company Name" --code "LICENSECODE"
bashdocker compose down rm -rf /opt/izpbx/data docker compose up -d
network_mode: host限制单主机多实例部署(需手动配置macvlan)Dockerfile地址:GitHub



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务