AzerothCore-WoTLK Docker 部署指南:一键搭建魔兽世界私服
2026/9/19 10:17:01 网站建设 项目流程

AzerothCore-WoTLK Docker 部署指南:一键搭建魔兽世界私服

【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk

AzerothCore-WoTLK 是《巫妖王之怒》版本的开源模块化服务器方案,源码编译要处理一堆依赖和数据库配置。用 Docker 做容器化部署,几条命令就能拉起一台可玩的魔兽世界私服,本文带你走完全流程,照着执行即可在自己的机器上跑通。

部署效果:跑起来之后你拥有什么

docker compose up -d执行完,你得到的是一组在后台跑着的容器:数据库、账号认证、以及玩家真正连入的世界进程。auth、characters、world 三个库由导入容器自动初始化完成,本机不需要安装 MySQL、CMake 和客户端数据工具。环境弄坏了直接删除数据卷重建,整套部署几分钟内可以复现。客户端指向你机器的 IP,登录端口 3724、世界端口 8085,即可进游戏。

快速上手:一键部署全部服务

环境要求与获取代码

机器上装好 Docker Engine 20.10 及以上版本和 Docker Compose v2(Docker Desktop 自带这两项)。然后拉取项目代码并进入目录:

git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk

构建镜像并启动全部服务

先构建镜像,再把所有容器拉起来:

docker compose build docker compose up -d

首次构建要下载全部依赖并编译服务器核心,耗时约 30-60 分钟,取决于网络;之后构建会复用缓存,快很多。第一次up -d还要等数据库导入完成。构建细节可参考 apps/docker/README.md。

创建管理员账号

服务器就绪后,挂到 worldserver 容器的控制台:

docker compose attach ac-worldserver

AC>提示符后输入创建管理员账号的命令(这是游戏内控制台命令,不是 shell 命令):

AC> account create admin password 3 -1

退出控制台请按Ctrl+P再按Ctrl+Q,不要直接按Ctrl+C,那会连带把世界进程停掉。

服务组成

compose 文件里定义了五个核心容器:

容器职责依赖
ac-databaseMySQL 8.4 数据库,存放账号、角色、世界三个库
ac-db-import一次性导入数据库初始化数据,完成后自动退出数据库健康
ac-client-data-init处理客户端游戏数据,完成后自动退出
ac-authserver账号认证服务,监听 3724 端口数据库与数据导入
ac-worldserver游戏世界进程,玩家实际连入这里,监听 8085 端口数据库、数据导入、客户端数据处理

两个 init 类容器跑完任务就自动停止,不需要你维护。

日常运维速查

查看服务状态

确认哪些容器在跑、各自状态如何:

docker compose ps

看实时日志

追踪 worldserver 的启动进度和报错:

docker compose logs -f ac-worldserver

看认证服务日志时,把最后的容器名换成ac-authserver即可。

修改主机映射端口

宿主机 3306 被占用时,用环境变量在启动时覆盖:

DOCKER_DB_EXTERNAL_PORT=3307 docker compose up -d

或者写进.env文件,之后就不用每次都填:

echo "DOCKER_DB_EXTERNAL_PORT=3307" > .env docker compose up -d

世界端口(8085)和认证端口(3724)同理,分别用DOCKER_WORLD_EXTERNAL_PORTDOCKER_AUTH_EXTERNAL_PORT覆盖。

备份数据库

把世界库导出成本地 SQL 文件:

docker compose exec ac-database mysqldump -u root -ppassword acore_world > world_backup.sql

养成定期执行的习惯,改动大的操作前先跑一次。

踩坑提醒:魔兽世界私服搭建的三个高频坑

⚠️ 按"现象→原因→解法"对号入座:

  • 容器起不来、反复重启。端口冲突:宿主机 3306、3724 或 8085 被占用。查一下占用进程,用上一节的DOCKER_*_EXTERNAL_PORT变量改端口。
  • 退出控制台后世界进程停了。按了Ctrl+C,信号直接打给了 worldserver 前台进程。用Ctrl+P+Ctrl+Q分离控制台。
  • 更新项目后自己改的配置丢了。直接改了docker-compose.yml,这个文件由项目维护。自定义配置写到新建的docker-compose.override.yml里。

进阶:开发环境与两条性能提示

  • 启动开发环境:docker compose --profile dev up -d会拉起ac-dev-server容器,把本地代码挂载进容器,建议在 Linux 或 WSL2 下使用。
  • 改完代码热更新:执行docker compose exec ac-dev-server cmake --build /azerothcore/var/build重新编译即可。

性能方面:首次构建最耗时,务必利用缓存;数据库卷放在快盘上,并坚持定期备份。

管理员账号建好后用客户端登入世界,这台私服就算真正跑通了。下一步建议先用docker compose logs -f ac-worldserver确认玩家连接日志正常,再动手探索项目的 modules/ 扩展机制。

【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询