news 2026/9/19 20:29:36

AzerothCore 游戏服务器容器化部署:Docker Compose 快速搭起魔兽私服,约30分钟搞定

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AzerothCore 游戏服务器容器化部署:Docker Compose 快速搭起魔兽私服,约30分钟搞定

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

服务起不来时按顺序查三样:

  1. 先翻日志找报错:docker compose logs ac-worldserver | grep -i error
  2. 再确认数据卷挂载正常:docker volume inspect azerothcore-wotlk_ac-database-data
  3. 最后看 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 20:29:17

DeskcommCRM落地实战:化解客户信息孤岛,构建高效客户管理

1. 团队的客户信息“孤岛”问题,为什么最终选择了 DeskcommCRM1.1 我们踩过的客户信息管理坑去年年初的时候,我们团队彻底乱过一阵。销售部、客服部、售后组各管各的客户资料,Excel 表格散落在不同的共享盘里,文件名从“客户名单-…

作者头像 李华
网站建设 2026/9/19 20:25:48

CC Switch 指向 TaoToken:Qwen3.7 Flash 切到 Claude Code 的结果

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 20:25:01

AI大模型落地实战:本地部署与应用开发的工程经验

我每天早起看一遍各类AI资讯,不是单纯为了追新,而是想搞明白今天的信息里,哪些三个月后还会影响我做技术决策和生活习惯。今天是2026年9月10日,信息量不算小:从大模型的能力迭代、本地部署工具的更新,到AI编…

作者头像 李华
网站建设 2026/9/19 20:24:58

用LLM从沟通记录中结构化提取客户信息并写入CRM的工程实践

我接这个需求的时候,客户那边给到的诉求其实很简单:市场部和销售部每天产生大量的企微聊天记录、邮件往来和通话转写文本,以前全靠业务助理一条条看完,再手工把客户信息、商机进展、下一步跟进时间录进CRM。一个月下来&#xff0c…

作者头像 李华