Docker 部署是 AnQiCMS 最快捷的安装方式,适合快速体验和测试环境。
Docker 镜像地址:hub.docker.com/r/anqicms/a...
方式一:Docker 命令行部署
适用于已安装 Docker 的环境(任何操作系统)。
快速启动
bash
# 拉取最新镜像
docker pull anqicms/anqicms:latest
# 运行容器
docker run -d --name anqicms -p 8001:8001 anqicms/anqicms:latest
参数说明
bash
# -d 后台运行
# --name 容器名称(可自定义)
# -p 8001:8001 映射端口:宿主机端口:容器端口
启动后操作
- 浏览器访问
http://服务器IP:8001 - 进入初始化安装界面(如果容器不自带数据库,需单独连接 MySQL)
- 完成安装后访问
http://服务器IP:8001/system/进入后台
提示:Docker 容器的 MySQL 需要另行部署。建议在同一 Docker 网络中创建一个 MySQL 容器,然后在初始化时填写 MySQL 容器的内网地址。
使用 Docker Compose(推荐)
创建 docker-compose.yml 文件:
yaml
version: '3'
services:
mysql:
image: mysql:5.7
container_name: anqicms-mysql
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: anqicms
MYSQL_CHARACTER_SET_SERVER: utf8mb4
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
volumes:
- ./mysql-data:/var/lib/mysql
restart: always
anqicms:
image: anqicms/anqicms:latest
container_name: anqicms
ports:
- "8001:8001"
depends_on:
- mysql
restart: always
启动:
bash
docker-compose up -d
初始化安装时,数据库主机填写 anqicms-mysql(容器名),用户名 root,密码为 your_root_password。
管理命令
bash
# 查看容器状态
docker ps | grep anqicms
# 查看容器日志
docker logs anqicms
# 停止容器
docker stop anqicms
# 启动容器
docker start anqicms
# 重启容器
docker restart anqicms
# 删除容器
docker rm -f anqicms
方式二:宝塔面板 Docker 一键部署
适用版本:宝塔面板 9.2.0+(2024 年 9 月 5 日后发布的版本)
以下演示基于宝塔面板 9.5.0 版本。
Step 1:安装 Docker
- 登录宝塔面板
- 左侧菜单 → Docker (如未找到,前往 面板设置 → 面板菜单隐藏 → 开启 Docker 显示)
- 首次进入会提示安装 Docker,点击 立即安装
- 安装完成后,还需进行依赖安装


Step 2:安装 Docker 版 MySQL
- 在 Docker 应用商店 搜索
mysql - 点击 安装
- 如果服务器内存低于 2GB,选择 5.6 版本,否则默认 5.7
- 勾选 允许外部访问(默认勾选)
- 安装完成后,点击 详情,复制 root 密码


Step 3:安装 AnQiCMS
- 在 Docker 应用商店 搜索
anqicms - 点击 安装

- 填写配置信息:
| 配置项 | 说明 |
|---|---|
| 网站域名 | 已解析到服务器的域名(如 www.anqicms.com) |
| 数据库名称 | 默认 anqicms(安装多个站时需修改) |
| 数据库密码 | 上一步复制的 MySQL root 密码 |
| 端口 | 默认 8001(安装多个站时需修改为 8002、8003 等) |

- 点击 确定,等待 1-5 分钟完成安装

Step 4:开始使用
安装完成后,默认账号密码:
| 项目 | 内容 |
|---|---|
| 默认账号 | admin |
| 默认密码 | 123456 |
| 后台地址 | http://你的域名/system/ |
方式二扩展:通过宝塔反向代理添加多站点
如果你已通过宝塔 Docker 部署了 AnQiCMS,并希望在同一台服务器上添加更多站点,可以通过宝塔的 反向代理站点 功能实现,无需再创建新容器。
Step 1:添加反向代理站点
- 宝塔面板 → 网站 → 反向代理 → 添加反代
- 填写以下配置:
| 配置项 | 填写内容 |
|---|---|
| 域名 | 新站点的域名(如 dev.anqicms.com) |
| 目标 URL | http://127.0.0.1:8001(默认端口,如安装多个容器则填对应端口) |

- 点击 确定 完成创建
Step 2:在 AnQiCMS 后台添加新站点
- 登录主站后台 → 多站点管理 → 添加新站点
- 填写以下信息:
| 字段 | 说明 |
|---|---|
| 站点名称 | 根据实际填写 |
| 站点根目录 | 以 /app/ 开头,如 /app/dev_anqicms.com(Docker 容器的根目录) |
| 网站地址 | 新站点域名,如 http://dev.anqicms.com |
| 管理员账号 | 新站点的管理员账号 |
| 管理员密码 | 新站点的管理员密码 |
| 数据库名称 | 新数据库名称,如 dev_anqicms_com(不要与已有库重复) |
| 数据库信息复用 | 选择 复用默认数据库账号信息(Docker 环境拥有完整数据库权限) |
| 选择使用的模板 | 根据需求选择 |

- 点击 确定 完成创建
Step 3:使用新站点
创建完成后,新站点即可直接访问。后台地址为 http://新域名/system/。

方式三:1Panel Docker 部署
Step 1:安装 MySQL 和 OpenResty
在 1Panel 应用商店 中安装以下软件:
- OpenResty(替代 Nginx 做反向代理)
- MySQL 5.7+ 或 8.0
Step 2:创建 AnQiCMS 容器
- 左侧菜单 → 容器 → 容器 Tab → 创建容器
- 填写以下配置:
| 项目 | 填写内容 |
|---|---|
| 名称 | anqicms |
| 镜像 | 手动输入 anqicms/anqicms:latest |
| 端口(服务器) | 8001(安装多个站时改为 8002、8003 等) |
| 端口(容器) | 8001 |
| 重启规则 | 失败后重启 |


- 点击 确认
Step 3:设置反向代理
- 左侧菜单 → 网站 → 创建网站
- 选择 反向代理

- 填写配置:
| 项目 | 填写内容 |
|---|---|
| 主域名 | 已解析的域名,如 test.anqicms.com |
| 代理地址 | 127.0.0.1:8001 |

- 点击 确认
Step 4:初始化安装
- 浏览器访问
http://test.anqicms.com - 进入初始化安装界面
- 填写数据库信息(数据库主机填写 MySQL 容器名称或内网 IP)
- 安装完成后,访问
http://test.anqicms.com/system/进入后台
方式四:aaPanel(宝塔国际版)Docker 部署
Step 1:安装 aaPanel
aaPanel 下载地址:www.aaPanel.com/new/downloa...
Step 2:安装 Docker 和 AnQiCMS
- 登录 aaPanel
- 进入 Docker 界面,安装 Docker(如未安装)
- 在 App Store 中搜索
anqicms

- 点击 Install

- 填写域名和端口(默认
8001) - 点击 Confirm,等待 1-5 分钟

Step 3:开始使用
默认账号密码同宝塔 Docker 部署:
| 项目 | 内容 |
|---|---|
| 默认账号 | admin |
| 默认密码 | 123456 |
| 后台地址 | http://你的域名/system/ |
Docker 部署对比总结
| 部署方式 | 难度 | 适用场景 | 是否需要额外配置 |
|---|---|---|---|
| Docker 命令行 | ⭐⭐ | 熟悉 Docker 的开发者 | 需单独部署 MySQL |
| Docker Compose | ⭐⭐ | 开发测试环境 | 一次配置,后续一键启动 |
| 宝塔 Docker | ⭐ | 新手、快速体验 | 自动处理 MySQL 和反向代理 |
| 1Panel Docker | ⭐⭐ | 1Panel 用户 | 需手动配置反向代理 |
| aaPanel Docker | ⭐ | 国外服务器用户 | 自动处理 |
❓ Docker 部署 MySQL 可以不用 Docker 吗?我用宿主机上的 MySQL 行不行?
完全可以。 不一定非要用 Docker 部署 MySQL。你可以用宿主机上已有的 MySQL,或者远程 MySQL 服务。
初始化安装时,数据库主机填写以下地址之一:
| MySQL 位置 | 数据库主机地址 | 说明 |
|---|---|---|
| 宿主机(同一台服务器) | host.docker.internal |
Docker 内部访问宿主机的特殊地址 |
| 宿主机(同一台服务器) | 172.17.0.1 |
Docker 默认网桥的宿主机地址 |
| 远程 MySQL 服务器 | 公网IP或域名 |
填写可访问的远程地址 |
| 同 Docker 网络 | 容器名称 |
如 anqicms-mysql(需在同一 Docker 网络) |
❓ Docker 容器重启或删除后,数据会丢失吗?如何持久化保存?
默认情况下,容器的数据会丢失。 因为 MySQL 的数据文件存储在容器内部,容器删除后数据就没了。解决方案是使用数据卷挂载。
使用 Docker Compose(推荐的方式)已经自动做了数据卷挂载(./mysql-data:/var/lib/mysql),数据会保存在 mysql-data/ 目录中,容器重启/删除后数据仍保留。
如果使用 docker run 命令行启动,可以加上 -v 参数挂载数据卷:
bash
docker run -d --name anqicms-mysql \
-e MYSQL_ROOT_PASSWORD=yourpassword \
-v ./mysql-data:/var/lib/mysql \ # ← 这行就是数据持久化
mysql:5.7
AnQiCMS 容器本身(anqicms/anqicms)是纯程序,没有持久化数据,重启不会丢失配置。
❓ Docker 版本的 AnQiCMS 如何升级?
升级步骤:
bash
# 1. 拉取最新镜像
docker pull anqicms/anqicms:latest
# 2. 删除旧容器(数据不会丢失,因为 MySQL 在另一个容器中或使用数据卷挂载)
docker rm -f anqicms
# 3. 重新创建容器(使用同样的启动命令)
docker run -d --name anqicms -p 8001:8001 anqicms/anqicms:latest
# 4. 进入后台 → 工具 → 更新缓存 → 点击"更新数据库表结构"
如果你使用的是 Docker Compose:
bash
docker compose pull # 拉取最新镜像
docker compose up -d # 重新创建容器
❓ Docker 部署后,模板和附件是保存在容器内还是宿主机?我可以直接修改模板文件吗?
默认情况下模板和附件都保存在容器内,删除容器后会丢失,也无法直接在宿主机上编辑模板文件。
建议: 如果计划修改模板文件,建议将模板目录挂载到宿主机:
yaml
# docker-compose.yml 中为 anqicms 服务添加
volumes:
- ./template:/app/template # 模板目录挂载到宿主机
- ./public:/app/public # 静态资源目录挂载到宿主机
- ./data:/app/data # 数据目录挂载到宿主机