了解Edgegap的工作原理

了解Edgegap的工作原理

Docker

Docker 是一个将应用程序及其所需的一切打包进容器镜像中的平台,该镜像在任何地方运行的表现都是完全一致的。对于游戏服务器而言,它消除了在某台机器上运行正常的构建版本与在另一台机器上运行失败的同一构建版本之间的差距,并且它是大多数编排平台部署的基本单元。

由

由

由

雅库布·莫蒂尔

雅库布·莫蒂尔

雅库布·莫蒂尔

,

产品总监

产品总监

产品总监

已发布

已发布

已发布

为什么游戏服务器会使用 Docker 进行打包?

Docker 是一款能够将服务器构建转化为容器镜像,并允许您在自己的机器上运行该镜像的工具。镜像就是您发布的产品。在生产环境中,托管平台或编排器会使用其自身的容器运行时(通常是 containerd)来运行相同的镜像,而无需安装 Docker。

这使得镜像成为了构建产物。持续集成(CI)生成它,质量保证(QA)测试它,生产环境运行它,并且每个版本都带有一个标签。回滚错误的补丁意味着重新部署上一个标签,而不是重新构建一台机器。

容器也不是虚拟机。它共享宿主机的操作系统内核,而不是在虚拟机管理程序(hypervisor)上运行自己的内核,因此服务器的模拟运行速度接近原生 CPU 速度,并且无需引导操作系统即可启动。每个容器还在其被分配的 CPU 和内存限制内运行,因此一个实例无法占用宿主机的其他份额。其代价是在网络和磁盘 I/O 方面会有一些开销。

当您将游戏服务器容器化时,会破坏什么?

大多数问题都源于构建,而不是容器本身,通过 Docker 在本地运行镜像可以在部署任何内容之前捕获这些问题。有四个问题经常反复出现:

  1. 构建针对的是错误的操作系统。 容器主机运行的是 Linux,因此服务器需要 Linux 构建版本:在 Unity 中为 Linux 专用服务器构建,或者在 Unreal 中针对 Linux 目标(通常是从 Windows 交叉编译的)。

  2. 镜像针对的是错误的 CPU。 在 Apple Silicon Mac 上构建的镜像默认采用 arm64,而大多数服务器主机运行的是 amd64。使用 --platform linux/amd64 进行构建可以避免镜像在启动时失败。

  3. 游戏端口是 TCP。 除非另有说明,否则 docker run -p 会发布 TCP,因此 UDP 游戏端口需要 /udp,例如 -p 7777:7777/udp(Docker 文档)。在生产环境中,平台会分配外部端口,因此服务器应该从环境中读取其端口,而不是对其进行硬编码。

  4. 镜像太大。 每个新主机都必须在比赛开始前拉取镜像,因此镜像大小会直接影响玩家等待新服务器的时间。

一旦服务器在容器中干净地运行,接下来的问题就是运行成本。对于 Unreal,剖析专用服务器构建可以显示 CPU、内存和带宽的去向。

WebAssembly 可以取代游戏服务器的容器吗?

还没有。WebAssembly 的吸引力在于其体积。2026年5月,开发者 Ivan Bogomolov 将整个 Godot 4 引擎编译为一个 35 MB 的 WebAssembly 二进制文件,而默认的 Node.js Docker 镜像体积则为 421 MB。更小的二进制文件意味着更快的拉取速度和更快的启动速度。

而它的局限性体现在服务器端。WebAssembly 系统接口 (WASI) 目前还无法稳定访问游戏服务器所依赖的 UDP 套接字,线程处理需要变通解决方法,并且服务器运行时会回退到基于 TCP 的 WebSockets,这正是游戏网络代码极力避免的。目前,WebAssembly 仅适用于单人网页游戏。我们的详细分析涵盖了每一个限制因素。

目前,容器仍是便携式单元。因为一个镜像在任何服务商的硬件上运行效果都相同,所以一次构建即可部署到像 Edgegap 这样规模的网络中:遍布 17+ 服务商的 615+ 个节点(平台数据,截至 2026 年 9 月 18 日)。

来自我们的赞助商(其实就是我们自己!)的寄语

区域只是对玩家所在地的一种预测。Edgegap 的边缘云(Edge Cloud)是一个分布式、多云网络,由 17+ 家服务商提供的 615+ 个节点组成,可按需使用。当游戏对局开始时,每个服务器都会在网络中最合适的可用节点上启动,而不是在仅有的几个区域中选择最近的一个。

常见问题

Docker是免费的吗?

Docker 可以运行 Windows 游戏服务器吗?

Docker 和 Kubernetes 之间有什么区别?

了解更多

最受欢迎博客,来自

最受欢迎博客,来自

后端深度解析

后端深度解析

Get your Game Online Easily & in Minutes

立即开始集成!

轻松在线游戏
且在几分钟内