11 10 月 2026

如果你想在一台机器上跑多个游戏服(比如白天开帕鲁、晚上开 MC),或者受够了"装依赖把系统搞脏",Docker 是最省心的解法。

这篇讲清楚三件事:Docker 到底给开服带来什么好处、怎么用一个现成镜像五分钟起服、以及哪些游戏其实不该用 Docker。


一、先说清楚:Docker 对开服的四好处和三不适用场景

四个真实好处

好处具体表现
环境隔离帕鲁要 .NET、MC 要 Java 21、老游戏要 Python 2,互不打架
一条命令起/停/更新docker compose up -d / docker pull 就完成,不用记长串启动参数
多实例并存一台机开 3 个服,各有独立端口和存档目录,不会互相踩
迁移方便整个目录打包拷到新机器,docker compose up -d 就复活
误操作兜底玩坏了删容器重来,宿主机系统不受影响

三种情况别用 Docker

  1. 1 核 2G 的小机器:Docker 本身有几十 MB 常驻开销,资源紧张时不如直接跑
  2. 需要极致性能的重度服(Squad、方舟飞升 100 人):多一层网络转发会增加一点延迟
  3. Windows 服务器:Windows 上的 Docker Desktop 对游戏服务端支持差,别折腾
一句话判断标准:开 1 个服、配置吃紧 → 不用 Docker;开 2 个以上服、想省运维 → 用 Docker。

二、安装 Docker(Linux)

Debian / Ubuntu

# 安装
curl -fsSL https://get.docker.com | sudo sh

# 把当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER
newgrp docker

# 验证
docker --version
docker compose version

CentOS / Rocky / AlmaLinux

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

国内机器加速(重要)

国内拉镜像经常超时,配置镜像加速:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json << 'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com"
  ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
镜像加速地址会失效,如果拉不动就换一个,或直接用官方源试试。

三、实战:用 Docker Compose 起一个幻兽帕鲁服

这是最能体现 Docker 优势的例子——官方服务端要装一堆 32 位库,用容器一行搞定。

第一步:建目录和配置文件

mkdir -p ~/palworld-docker && cd ~/palworld-docker
nano docker-compose.yml

内容:

services:
  palworld:
    image: thijsvanloef/palworld-server-docker:latest
    container_name: palworld
    restart: unless-stopped
    ports:
      - "8211:8211/udp"      # 游戏端口,必须 UDP
      - "27015:27015/udp"    # Steam 查询端口
    environment:
      - PLAYERS=16
      - SERVER_PASSWORD=你的密码
      - MULTITHREADING=true
      - RCON_ENABLED=true
      - RCON_PORT=25575
      - UPDATE_ON_BOOT=true
      - TZ=Asia/Shanghai
    volumes:
      - ./palworld-data:/palworld/Pal/Saved

关键点解释:

  • ports 里 UDP 必须显式标注 /udp,只写 8211:8211 默认映射 TCP,游戏连不上(这是最经典的坑)
  • volumes 把存档挂到宿主机,删容器存档不丢
  • restart: unless-stopped 实现崩溃和重启后自动拉起
  • UPDATE_ON_BOOT=true 每次启动自动更新服务端

第二步:启动

docker compose up -d

-d 是后台运行。第一次会拉镜像(几百 MB),看进度:

docker compose logs -f

看到 Server started 或类似日志就成功了,Ctrl+C 退出日志(服务继续跑)。

第三步:放行端口

容器映射了端口,宿主机防火墙还是要放行(很多人漏这步):

sudo ufw allow 8211/udp
sudo ufw allow 27015/udp

如果你用的是 NAT 型云服务器,还需要在控制台做端口映射,把外网端口指向宿主机的 8211——详见 NAT 端口映射完全指南。

第四步:常用操作

docker compose down          # 停止并移除容器(存档保留)
docker compose restart       # 重启
docker compose pull          # 拉取新镜像
docker compose up -d         # 用新镜像重建
docker compose logs -f       # 看实时日志
docker exec -it palworld bash   # 进容器内部

四、多服并存:一台机器开三个服

Docker 的真正用武之地。在同一个目录下写多个 service,或者分多个目录各写一个 compose 文件。

推荐分目录(互不干扰,好管理):

~/servers/
├── palworld/
│   └── docker-compose.yml      # 端口 8211
├── minecraft/
│   └── docker-compose.yml      # 端口 25565
└── valheim/
    └── docker-compose.yml      # 端口 2456

每个目录独立 docker compose up -d,互不影响。

内存分配要留余量

三个服同时跑,别把内存全分出去。假设机器 8G:

服务分配说明
帕鲁4G帕鲁吃内存大户
MC2G中小服够用
Valheim1.5G轻量
系统 + Docker0.5G必须留

Docker 里限制内存:

    mem_limit: 4g
    memswap_limit: 4g

五、哪些游戏有官方/成熟镜像

截至撰稿时,社区维护质量较高的镜像(GitHub 上星标较多、更新勤):

游戏镜像备注
幻兽帕鲁thijsvanloef/palworld-server-docker最成熟,支持自动更新
我的世界itzg/minecraft-server支持 Paper/Fabric/Forge,环境变量超全
Valheimlloesche/valheim-server含自动备份
CS:GO / CS2cm2network/csgo社区常用
Minecraft Bedrockitzg/minecraft-bedrock-server基岩版专用
Factoriofactoriotools/factorio官方风格
Satisfactorywolveix/satisfactory-server需要登录 Steam 账号
安全提醒:第三方镜像不是官方出品,拉之前看一眼 GitHub 仓库的最近更新时间和 issue 区。长期不更新的镜像不要用,游戏一更新就废。生产环境建议锁定具体版本号而非 latest。

没有现成镜像怎么办?

自己写一个 Dockerfile。以 Ubuntu 为基础:

FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 && apt-get update && \
    apt-get install -y --no-install-recommends \
    curl lib32gcc-s1 lib32stdc++6 ca-certificates && \
    rm -rf /var/lib/apt/lists/*

RUN mkdir -p /steamcmd && cd /steamcmd && \
    curl -sSL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar xz

RUN /steamcmd/steamcmd.sh +login anonymous \
    +force_install_dir /gameserver \
    +app_update 896660 validate +quit

WORKDIR /gameserver
EXPOSE 2456-2458/udp
CMD ["/gameserver/start.sh"]

构建和运行:

docker build -t my-valheim .
docker run -d --name valheim -p 2456-2458:2456-2458/udp \
  -v ./data:/gameserver/save my-valheim

六、Docker 开服的五个坑

坑 1:端口只映射了 TCP(最常见)

ports:
  - "8211:8211"        # ❌ 默认 TCP,游戏连不上
  - "8211:8211/udp"    # ✅ 正确

绝大多数 Steam 游戏走 UDP,必须显式声明。

坑 2:存档没挂载 volume,容器一删全没了

volumes:
  - ./data:/path/to/save   # 必须有

删容器前先确认存档在宿主机:ls ./data。

坑 3:时区不对,日志时间和北京时间差 8 小时

environment:
  - TZ=Asia/Shanghai

或者挂载宿主机时区文件:

volumes:
  - /etc/localtime:/etc/localtime:ro

坑 4:容器里看不到外网,Steam 下载失败

检查 DNS:

docker run --rm busybox nslookup steamcdn-a.akamaihd.net

解析失败就在 daemon.json 里指定 DNS:

{ "dns": ["223.5.5.5", "114.114.114.114"] }

坑 5:磁盘被 Docker 日志和镜像吃满

Docker 默认不限制容器日志大小,跑几个月能吃几十 G:

sudo tee /etc/docker/daemon.json << 'EOF'
{
  "log-driver": "json-file",
  "log-opts": { "max-size": "10m", "max-file": "3" }
}
EOF
sudo systemctl restart docker

# 清理无用镜像和缓存
docker system prune -a --volumes

七、Docker vs 直接部署,怎么选

场景推荐方案
只开 1 个服,配置 4G 以内直接部署,省资源
开 2 个以上服Docker
新手,想一条命令搞定Docker(找成熟镜像)
100 人重度服、追求极限性能直接部署
Windows 服务器直接部署
经常换机器、需要迁移Docker

八、总结

Docker 不是开服的必需品,但当你开始在同一台机器上折腾第二个、第三个服的时候,它会从"可选项"变成"必选项"。

上手路径建议:

  1. 先按各游戏的保姆级教程用原生方式开一个服,理解端口、存档、启动参数这些概念
  2. 熟悉后再切 Docker,用现成镜像复现一遍
  3. 多服并存时自然过渡到 compose 编排
📌 想省掉这些折腾?我们家的一键开服面板内置了多服管理和自动守护,NAT 价格即可开长期服 → https://z0w.cn

相关教程

延伸阅读
  1. 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
  2. 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
  3. 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
  4. 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
  5. 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
  6. RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
  7. 短链接服务搭建:Shlink 自托管,链接数据自己掌握
  8. 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
更多阅读
  1. 上一篇:游戏服务器监控与告警保姆级教程:进程挂了、内存爆了第一时间知道
  2. 下一篇:RCON远程管理完全指南:不用登服务器也能踢人、换图、发公告
发表评论 1

    1. Steam 游戏配置与开服教程总索引:一页查清要吃多少配置、教程在哪 - 			财富云计算 - 维基百科的头像

      [...]这是本站长期维护的游戏配置与教程总索引。想开服,先在这页搞清楚两件事:你的游戏要吃多少配置、你的系统该看哪篇教程。建议收藏——换游戏、加 MOD、人数变多时,回来核对一遍能省掉大部分"卡爆了"和"连不上"。搭配阅读:还没买服务器?先看购前决策索引(预算分级 / NAT vs 独立 IP / 避坑清单);端口映射看不懂?先看端口速查表(40+ 游戏端口协议一页查清)。一、全游戏配置需求速查表下表按"[...]