AzerothCore 游戏服务器容器化部署:Docker Compose 快速搭起魔兽私服,约30分钟搞定
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
AzerothCore-WoTLK 是一套完整的开源 MMO 解决方案,本文带你用容器化部署的方式,把它变成一台可以登录的魔兽私服游戏服务器。不用自己装 MySQL、不用手动编译环境,一条 Docker 命令就能把数据库、登录、世界服务全部拉起。适合想跑私服但不想折腾依赖的朋友,整个过程大概 30 分钟(首次构建会稍久一些)。
准备工作:装 Docker 并拉取项目代码
先确认两样东西装好了:
- Docker:可以把程序连同它的依赖一起打包运行的工具,相当于给服务器造一个隔离沙箱
- Docker Compose:管理多容器应用的工具,让"一次启动一堆服务"变成一条命令的事
两者装好后,把项目代码拉到本地:
git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk一键构建并拉起服务集群
为什么用 Docker 部署省事?因为仓库里已经准备好了docker-compose.yml,它定义了整套服务该怎么跑、端口怎么映射、数据放哪里,你只负责按顺序敲命令。
先构建镜像。这一步会下载依赖并把源代码完整编译一遍:
docker compose build # 首次构建耗时较长,之后会快很多⏱ 首次构建大约需要 30~60 分钟(下载依赖 + 编译),后面的构建会明显变快,耐心等完这一次即可。
镜像就绪后,后台启动所有服务:
docker compose up -d # 后台拉起整个服务集群这套集群里真正干活的有三个核心角色,了解一下分工,排障时心里有数:
- ac-database(数据库服务):存账号、角色、物品等所有持久化数据,默认对外端口3306,数据通过卷挂载保存,容器重建也不丢
- ac-authserver(认证服务器):处理玩家登录和身份验证,默认端口3724,支持密码加密存储
- ac-worldserver(世界服务器):跑游戏世界逻辑和玩家交互,默认端口8085,支持多线程,吃硬件性能
想改配置?不用动docker-compose.yml,用环境变量临时覆盖就行。比如把数据库对外访问端口从 3306 换成 3307:
# 只改数据库端口为 3307,其余保持默认 DOCKER_DB_EXTERNAL_PORT=3307 docker compose up -d首次进入:三步建好管理员账号
服务全绿之后,还不能直接进游戏——得先造一个管理员。连进世界服务器的控制台,一条命令搞定:
docker compose attach ac-worldserver # 接入世界服务器控制台 AC> account create admin password 3 -1 # 格式:account create 用户名 密码 权限等级 扩张包ID退出控制台时,先按 Ctrl+P 再按 Ctrl+Q。别直接关终端,那样可能把正在运行的服务一起带走。
日常维护与排障:监控、备份、端口冲突快速解决
🔧 服务跑起来之后,日常就是看状态、备份数据、偶尔处理端口打架这三件事。
看状态和日志,这两条命令基本够用:
docker compose ps # 所有服务的运行状态 docker compose logs -f ac-worldserver # 实时跟踪世界服务器日志备份与恢复,定期把数据库导出来,心里才踏实:
# 备份数据库 docker compose exec ac-database mysqldump -u root -ppassword acore_world > backup.sql # 恢复数据库 cat backup.sql | docker compose exec -T ac-database mysql -u root -ppassword acore_world性能上,给世界服务器留足内存,建议至少 4GB;数据库吃缓存的话,可以在docker-compose.yml里设置MYSQL_INNODB_BUFFER_POOL_SIZE调大缓存;日志文件记得定期清理,别让磁盘写满。
端口冲突快速解决:如果 3724 或 8085 被别的东西占了,用环境变量换一批映射端口即可,多个参数可以一起写:
# 认证改到 3725,世界改到 8086 DOCKER_AUTH_EXTERNAL_PORT=3725 DOCKER_WORLD_EXTERNAL_PORT=8086 docker compose up -d服务起不来时按顺序查三样:
- 先翻日志找报错:
docker compose logs ac-worldserver | grep -i error - 再确认数据卷挂载正常:
docker volume inspect azerothcore-wotlk_ac-database-data - 最后看 Docker 引擎分到的资源够不够(内存、CPU 是否被限死)
更多细节可以参考仓库里的 Docker 部署说明。
进阶玩法:开启开发模式与代码热更新
想更进一步的话,仓库还内置了开发模式——它会额外起一个带开发工具的开发服务器,支持源码热更新:
docker compose --profile dev up -d # 启动包含开发工具的服务集群 docker compose exec ac-dev make -j 4 worldserver # 修改代码后重新编译世界服务器改完代码跑一条编译命令,不用重走完整部署流程,适合跟着源码调试行为。
到这里,一台 AzerothCore 魔兽私服已经从代码跑到了能进游戏。容器化部署把装环境、配端口、管数据都收敛成了几条命令,后续备份、扩端口、开开发环境都有现成的路可走。剩下的,就是登录进去看看艾泽拉斯了。
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考