goofball222/factorio容器化部署方案,支持快速搭建和运行 Factorio 多人游戏服务器。镜像基于官方 Factorio 无头服务器构建,包含完整的服务器功能,并通过容器化技术简化部署流程,确保数据持久化和配置灵活性。
factorio 用户(UID/GID 999)运行服务,避免直接使用 root 权限,降低***面/factorio 卷,便于备份和迁移stable(稳定版)、experimental(实验版)及特定版本标签,满足不同需求docker logs 查看| Docker 标签 | Factorio 版本 | 描述 | 发布日期 |
|---|---|---|---|
| latest, stable | 2.0.69 | Factorio 无头服务器稳定版 | 2025-09-05 |
| experimental | 2.0.69 | Factorio 无头服务器实验版 | 2025-09-05 |
| 2.0.69 | 2.0.69 | Factorio 无头服务器稳定版(静态版本) | 2025-09-05 |
容器仅有一个核心卷 /factorio,包含服务器所有关键数据,结构如下:
factorio ├── config # 配置文件目录 │ ├── map-gen-settings.json # 地图生成配置 │ ├── map-gen-settings.example.json # 地图生成配置示例 │ ├── map-settings.json # 地图设置 │ ├── map-settings.example.json # 地图设置示例 │ ├── RCON.pw # RCON 密码文件 │ ├── server-adminlist.json # 管理员列表 │ ├── server-banlist.json # 封禁列表 │ ├── server-settings.json # 服务器设置 │ └── server-whitelist.json # 白名单 ├── mods # 模组目录(存放 .zip 格式模组) │ └── mod.zip ├── saves # 存档目录(存放 .zip 格式存档) │ └── save.zip └── scenarios # 场景目录(存放 .zip 格式场景) └── scenario.zip
容器默认暴露以下端口,需根据实际需求映射到主机:
27015/tcp:RCON 管理端口(用于远程管理服务器)34197/udp:Factorio 游戏默认端口(客户端连接用)最简单的启动方式(仅映射游戏端口,数据存储在容器内部,重启后可能丢失):
bashdocker run --name factorio -d \ -p 34197:34197/udp \ goofball222/factorio
为确保数据持久化和配置灵活性,推荐使用 docker-compose.yml 管理服务。以下示例将数据存储在当前目录(需确保目录权限正确),并映射 RCON 端口以便管理:
yamlversion: '3' services: factorio: image: goofball222/factorio container_name: factorio restart: unless-stopped # 除非手动停止,否则自动重启 ports: - "27015:27015" # RCON 端口映射 - "34197:34197/udp" # 游戏端口映射 volumes: - /etc/localtime:/etc/localtime:ro # 同步主机时间 - ./factorio:/factorio # 数据持久化到当前目录的 factorio 子目录 environment: - TZ=UTC # 设置时区(如 Asia/Shanghai) # 可选:添加其他环境变量,如 FACTORIO_RCON_PASSWORD=your_password
保存为 docker-compose.yml 后,通过以下命令启动:
bashdocker-compose up -d
服务器运行日志可通过容器日志直接查看:
bashdocker logs factorio # 查看当前日志 docker logs -f factorio # 实时跟踪日志
通过环境变量可自定义服务器行为,以下是支持的变量列表:
| 变量名 | 默认值 | 描述 |
|---|---|---|
DEBUG | false | 设置为 true 启用容器调试模式,输出额外日志信息 |
FACTORIO_OPTS | 未设置 | 传递自定义命令行参数给 Factorio 服务器(如 --latency-ms 200) |
FACTORIO_PORT | 未设置 | 覆盖默认游戏端口(默认 34197/udp) |
FACTORIO_RCON_PASSWORD | 未设置 | 指定 RCON 密码(优先于 RCON.pwd 文件,未设置则自动生成并保存到文件) |
FACTORIO_RCON_PORT | 27015 | RCON 管理端口 |
FACTORIO_SCENARIO | 未设置 | 指定服务器启动的场景名称 |
PGID | 999 | 容器内 factorio 用户组的 GID(用于权限调整) |
PUID | 999 | 容器内 factorio 用户的 UID(用于权限调整) |
RUN_CHOWN | true | 是否自动调整 /factorio 卷权限(设为 false 可加快启动,需确保权限正确) |
RUNAS_UID0 | false | 是否以 root(UID=0)运行服务(不安全,不推荐) |
/factorio/config 目录下无配置文件,容器会自动生成默认的 server-settings.json、map-gen-settings.json 等文件,建议启动后编辑这些文件自定义服务器参数(如服务器名称、最大玩家数等)。/factorio/saves 目录下无存档,服务器会自动生成默认地图(save.zip)。FACTORIO_RCON_PASSWORD 设置密码且 RCON.pwd 文件不存在,容器会生成随机密码并保存到 /factorio/config/RCON.pwd,同时输出到启动日志。config/server-whitelist.json)仅允许列表中的用户连接服务器(文件存在时生效):
json[ "user1", "user2", "user3" ]
config/server-banlist.json)阻止列表中的用户连接服务器:
json[ "banneduser1", "banneduser2", "banneduser3", "banneduser4" ]
config/server-adminlist.json)授予列表中的用户管理员权限:
json[ "adminuser1", "adminuser2" ]
/factorio 目录数据,避免版本兼容问题导致数据丢失。PUID/PGID 或通过 --user 指定用户启动容器,需确保挂载的 /factorio 目录权限对应用户可读写(可通过 chown -R 999:999 ./factorio 调整默认权限)。RUNAS_UID0=true(以 root 运行),避免扩大***面。许可协议:Apache 2.0
版权所有:2019 The Goofball - ***
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务