AzerothCore WoTLK Docker部署完整教程:如何用Docker Compose快速启动三服务集群
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
本文教你用几条 Docker Compose 命令部署并启动一套完整的 AzerothCore WoTLK 服务器集群:数据库、认证、世界三个服务全部跑在容器里,之后即可创建管理员账号登录游戏。唯一前置条件是本地装好 Docker,服务组合与端口映射都定义在仓库的 docker-compose.yml 中。时间预期:首次构建镜像通常需要 30–60 分钟(要下载依赖并编译源码),之后的启动与重置只需几分钟。
先认识三个服务
如果直接在宿主机安装,需要自行处理 MySQL 版本与 C++ 编译环境;容器化的好处是三个服务都封装为现成镜像,版本固定,环境弄脏了用一条命令就能重置。三个服务及其验证方式如下:
| 容器名 | 默认端口 | 职责 | 验证方式 |
|---|---|---|---|
| ac-database | 3306 | MySQL 数据库,存储账号、角色与世界数据 | docker compose ps显示 running |
| ac-authserver | 3724 | 账号认证,校验玩家登录 | 日志无致命错误,3724 端口在监听 |
| ac-worldserver | 8085 | 世界服务,加载世界数据并运行游戏逻辑 | 日志显示加载完成,8085 端口在监听 |
部署实操
1. 克隆代码
先克隆仓库并进入目录,确认目录里能看到docker-compose.yml:
git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk2. 构建镜像
首次构建会下载依赖并编译源码,通常 30–60 分钟;后续构建复用缓存,速度明显变快:
docker compose build3. 启动服务
服务在后台启动,跑docker compose ps应看到三个容器均为 running:
docker compose up -d验证服务并创建管理员账号
先执行docker compose ps确认三个服务都在运行,再用docker compose logs -f ac-worldserver观察世界服务器日志,确认没有报错、端口已开始监听。
然后进入世界服务器控制台:
docker compose attach ac-worldserver在控制台输入下面这条命令创建管理员账号(等级 3):
AC> account create admin password 3 -1⚠️ 退出控制台要按Ctrl+P 再按 Ctrl+Q;直接按 Ctrl+C 会终止整个服务。
日常运维
查看日志与状态
第一条实时跟踪世界服务器输出,便于排查问题;第二条随时确认容器状态:
docker compose logs -f ac-worldserver docker compose ps停止服务与重置数据
down只停服务,数据保留在卷中;down -v会连带删除全部数据,且不可恢复:
docker compose down docker compose down -v修改数据库外部端口
外部 3306 被占用时,用环境变量修改数据库对外端口,例如改为 3307:
DOCKER_DB_EXTERNAL_PORT=3307 docker compose up -d备份世界数据库
把世界数据导出为本地 SQL 文件,方便存档或迁移到别的机器:
docker compose exec ac-database mysqldump -u root -ppassword acore_world > backup.sql启动开发环境
开发环境支持热更新:修改源码并重新编译后立即生效,无需重建镜像。开发镜像的定义在 apps/docker/ 目录:
docker compose --profile dev up -d常见问题
问:端口被占用了怎么办?答:通过环境变量改。数据库用DOCKER_DB_EXTERNAL_PORT=3307 docker compose up -d即可;认证与世界的端口同理,改完用docker compose ps确认新端口。
问:首次构建很慢,正常吗?答:正常。第一次要下载依赖并编译全部源码,通常 30–60 分钟;后续构建复用缓存,速度会明显变快。
问:什么情况下会丢数据?答:数据默认持久化。down只停服务,数据保留;只有执行down -v才会删除卷和全部数据。
问:按了 Ctrl+C 后服务就没了,怎么回事?答:控制台里的 Ctrl+C 会直接终止服务进程。正确做法是先按 Ctrl+P,再按 Ctrl+Q 退出控制台,这样不会影响服务。
这套部署方式适合想快速把 AzerothCore WoTLK 服务器跑起来、研究服务端逻辑或做二次开发的人;熟悉基本操作后,可以进一步接触自定义模块开发与性能调优。
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考