安企CMS的安装-Docker 部署

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 映射端口:宿主机端口:容器端口

启动后操作

  1. 浏览器访问 http://服务器IP:8001
  2. 进入初始化安装界面(如果容器不自带数据库,需单独连接 MySQL)
  3. 完成安装后访问 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

  1. 登录宝塔面板
  2. 左侧菜单 → Docker (如未找到,前往 面板设置面板菜单隐藏 → 开启 Docker 显示)
  3. 首次进入会提示安装 Docker,点击 立即安装
  4. 安装完成后,还需进行依赖安装

Step 2:安装 Docker 版 MySQL

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

Step 3:安装 AnQiCMS

  1. 在 Docker 应用商店 搜索 anqicms
  2. 点击 安装
  1. 填写配置信息:
配置项 说明
网站域名 已解析到服务器的域名(如 www.anqicms.com
数据库名称 默认 anqicms(安装多个站时需修改)
数据库密码 上一步复制的 MySQL root 密码
端口 默认 8001(安装多个站时需修改为 80028003 等)
  1. 点击 确定,等待 1-5 分钟完成安装

Step 4:开始使用

安装完成后,默认账号密码:

项目 内容
默认账号 admin
默认密码 123456
后台地址 http://你的域名/system/

方式二扩展:通过宝塔反向代理添加多站点

如果你已通过宝塔 Docker 部署了 AnQiCMS,并希望在同一台服务器上添加更多站点,可以通过宝塔的 反向代理站点 功能实现,无需再创建新容器。

Step 1:添加反向代理站点

  1. 宝塔面板 → 网站反向代理添加反代
  2. 填写以下配置:
配置项 填写内容
域名 新站点的域名(如 dev.anqicms.com
目标 URL http://127.0.0.1:8001(默认端口,如安装多个容器则填对应端口)
  1. 点击 确定 完成创建

Step 2:在 AnQiCMS 后台添加新站点

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

Step 3:使用新站点

创建完成后,新站点即可直接访问。后台地址为 http://新域名/system/


方式三:1Panel Docker 部署

Step 1:安装 MySQL 和 OpenResty

在 1Panel 应用商店 中安装以下软件:

  • OpenResty(替代 Nginx 做反向代理)
  • MySQL 5.7+ 或 8.0

Step 2:创建 AnQiCMS 容器

  1. 左侧菜单 → 容器容器 Tab → 创建容器
  2. 填写以下配置:
项目 填写内容
名称 anqicms
镜像 手动输入 anqicms/anqicms:latest
端口(服务器) 8001(安装多个站时改为 80028003 等)
端口(容器) 8001
重启规则 失败后重启
  1. 点击 确认

Step 3:设置反向代理

  1. 左侧菜单 → 网站创建网站
  2. 选择 反向代理
  1. 填写配置:
项目 填写内容
主域名 已解析的域名,如 test.anqicms.com
代理地址 127.0.0.1:8001
  1. 点击 确认

Step 4:初始化安装

  1. 浏览器访问 http://test.anqicms.com
  2. 进入初始化安装界面
  3. 填写数据库信息(数据库主机填写 MySQL 容器名称或内网 IP)
  4. 安装完成后,访问 http://test.anqicms.com/system/ 进入后台

方式四:aaPanel(宝塔国际版)Docker 部署

Step 1:安装 aaPanel

aaPanel 下载地址:www.aaPanel.com/new/downloa...

Step 2:安装 Docker 和 AnQiCMS

  1. 登录 aaPanel
  2. 进入 Docker 界面,安装 Docker(如未安装)
  3. App Store 中搜索 anqicms
  1. 点击 Install
  1. 填写域名和端口(默认 8001
  2. 点击 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            # 数据目录挂载到宿主机
相关推荐
Sinclair1 小时前
安企CMS的安装-服务器手动部署
运维·后端
shujudang1 小时前
业务闭环视角下的营销自动化(MA)平台选型逻辑
大数据·运维·数据分析·自动化·营销自动化
要开心吖ZSH2 小时前
AI医疗分诊与健康咨询助手agent开发——(4-2)从零到一:我给AI医疗分诊助手加了个“知识库大脑“,终于搞懂了RAG是什么
java·docker·agent·医疗·rag
希望奇迹很安静2 小时前
数通基本实验
运维·服务器·网络
汪汪大队u3 小时前
【无标题】
运维·docker·kubernetes·prometheus
学术小白人4 小时前
第二届智能制造、机器人与自动化国际学术会议(IMRA 2026)
运维·人工智能·机器人·自动化·制造
吴声子夜歌4 小时前
Redis 3.x——集群运维
运维·数据库·redis
欧神附体1234 小时前
在虚拟机搭建本地仓库和网络仓库
linux·运维·服务器
是个西兰花5 小时前
Linux:深入解析Linux线程原理与实现
linux·运维·c++·线程·互斥锁