
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
0.17.33, 0.17, latest https://github.com/dtandersen/docker_factorio_server/blob/master/0.17/Dockerfile0.16.51, 0.16, stable https://github.com/dtandersen/docker_factorio_server/blob/master/0.16/Dockerfile0.15.40, 0.15 https://github.com/dtandersen/docker_factorio_server/blob/master/0.15/Dockerfile0.14.23, 0.14 https://github.com/dtandersen/docker_factorio_server/blob/master/0.14/Dockerfile0.13.20, 0.13 https://github.com/dtandersen/docker_factorio_server/blob/master/0.13/Dockerfilelatest - 最新版本(可能为实验性版本)stable - Factorio官网factorio.com声明的稳定版本0.x - 对应分支的最新版本0.x.y - 特定版本0.x-dev - 对应分支master分支的开发版本Factorio是一款建造和维护工厂的游戏。你需要开采资源、研究技术、搭建基础设施、自动化生产并对抗敌人。发挥想象力设计工厂,将简单元素组合成巧妙结构,运用管理技能维持运转,并保护工厂免受不友好生物的***。游戏稳定且针对大型工厂优化,支持自定义地图、Lua mod编写和多人联机。注意:此镜像仅包含服务器,游戏本体需从factorio.com或Steam获取。
运行服务器以创建必要的文件夹结构和配置文件。以下示例将数据存储在/opt/factorio:
bashsudo mkdir -p /opt/factorio sudo chown 845:845 /opt/factorio sudo docker run -d \ -p 34197:34197/udp \ -p 27015:27015/tcp \ -v /opt/factorio:/factorio \ --name factorio \ --restart=always \ dtandersen/factorio
选项说明:
-d - 后台运行-p - 暴露端口-v - 挂载本地/opt/factorio到容器内/factorio--restart - 崩溃或系统启动时自动重启--name - 容器命名为factorio(避免随机名称)chown命令用于设置权限:0.16+版本中服务器以用户ID 845的factorio用户运行,需确保本地目录可被该用户写入。
查看日志:
bashdocker logs factorio
停止服务器:
bashdocker stop factorio
修改/opt/factorio/config/server-settings.json配置后重启:
bashdocker start factorio
以交互模式启动服务器,使用docker attach进入控制台执行命令:
bashdocker run -d -it \ --name factorio \ dtandersen/factorio docker attach factorio
升级前备份存档(客户端可直接创建存档)。确保使用-v挂载数据卷(否则存档会随容器删除丢失):
bashdocker stop factorio docker rm factorio docker pull dtandersen/factorio # 重新运行服务器(使用之前的命令)
首次启动会生成_autosave1.zip存档,使用map-gen-settings.json和map-settings.json配置地图。后续启动将加载最新存档。
touch oldsave.zip(重置修改时间)后重启。将Mod文件复制到mods文件夹后重启服务器。
从场景启动(而非存档)需使用替代入口点:
bashdocker run -d \ -p 34197:34197/udp \ -p 27015:27015/tcp \ -v /opt/factorio:/factorio \ --name factorio \ --restart=always \ --entrypoint "/scenario.sh" \ dtandersen/factorio \ MyScenarioName
将场景导出为存档:
bashdocker run -d \ -p 34197:34197/udp \ -p 27015:27015/tcp \ -v /opt/factorio:/factorio \ --name factorio \ --restart=always \ --entrypoint "/scenario2map.sh" \ dtandersen/factorio \ MyScenarioName
重启服务器将加载生成的存档。
在rconpw文件中设置RCON密码(未存在则生成随机密码)。修改密码需停止服务器后编辑文件并重启。若不暴露27015端口则RCON无法被外部访问。
创建config/server-whitelist.json:
json["you", "friend"]
创建config/server-banlist.json:
json["bad_person", "other_bad_person"]
创建config/server-adminlist.json:
json["you", "friend"]
使用envsubst通过环境变量动态生成配置文件。示例docker-compose.yml:
yamlfactorio_1: image: dtandersen/factorio ports: - "34197:34197/udp" volumes: - /opt/factorio:/factorio - ./server-settings.json:/server-settings.json environment: - INSTANCE_NAME=你的服务器名称 - INSTANCE_DESC=你的服务器描述 entrypoint: /bin/sh -c "mkdir -p /factorio/config && envsubst < /server-settings.json > /factorio/config/server-settings.json && exec /docker-entrypoint.sh"
server-settings.json中使用变量:
json"name": "${INSTANCE_NAME}", "description": "${INSTANCE_DESC}"
容器使用单个数据卷/factorio存储配置、Mod和存档,目录需属于UID 845的factorio用户:
factorio ├── config │ ├── map-gen-settings.json │ ├── map-settings.json │ ├── rconpw │ ├── server-adminlist.json │ ├── server-banlist.json │ ├── server-settings.json │ └── server-whitelist.json ├── mods │ └── fancymod.zip └── saves └── _autosave1.zip
创建docker-compose.yml:
yamlversion: '2' services: factorio: image: dtandersen/factorio ports: - "34197:34197/udp" - "27015:27015/tcp" volumes: - /opt/factorio:/factorio
运行:
bashsudo mkdir -p /opt/factorio sudo chown 845:845 /opt/factorio sudo docker-compose up -d
34197/udp - 游戏服务器(必需)27015/tcp - RCON(可选)PORT(0.15+)- 自定义游戏端口,如-e "PORT=34198"RCON_PORT(0.16+)- 自定义RCON端口,如-e "RCON_PORT=34198"设置server-settings.json中lan为true:
json"visibility": { "public": false, "lan": true }
使用--network=host启动容器:
bashsudo docker run -d \ --network=host \ -p 34197:34197/udp \ -p 27015:27015/tcp \ -v /opt/factorio:/factorio \ --name factorio \ --restart=always \ dtandersen/factorio
Own address is RIGHT IP:WRONG PORT,可能是Docker代理问题。需将Docker服务启动参数设为--userland-proxy=false。PORT环境变量指定端口,如-e "PORT=34198"。以下是 dtandersen/factorio 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






来自真实用户的反馈,见证轩辕镜像的优质服务