3
0
0

docker搭建EmulatorJS模拟器

2026-06-30

📝 笔记摘要:EmulatorJS 简介

1. EmulatorJS 是什么? EmulatorJS 是一个开源的、基于浏览器的多平台游戏模拟器集合。它利用 WebAssembly (Wasm) 技术,将各种经典游戏机的模拟核心(如 MAME, RetroArch 核心等)移植到了网页端,让你只需打开浏览器就能玩复古游戏。

2. 核心功能:

  • 全平台支持: 完美支持 FC (NES)、SFC (SNES)、GBA、N64、PS1、街机 (MAME/FBA)、Sega Genesis 等数十种主流复古平台。

  • 零客户端安装: 用户无需下载任何模拟器软件或插件,通过 Chrome、Edge、Safari 等现代浏览器即可直接运行。

  • 高度可定制: 支持自定义按键映射、保存/读取即时存档、金手指代码、游戏封面图展示以及多语言界面。

  • 手柄友好: 原生支持 USB 手柄和蓝牙手柄,即插即用,体验接近原生模拟器。

3. 最大优势:

  • 部署极简: 官方提供了 Docker 镜像(如 linuxserver/emulatorjs),一键部署后即可通过网页管理游戏库。

  • 跨设备访问: 只要网络连通,你可以在电脑、平板、手机甚至智能电视的浏览器上访问同一个游戏库。

  • 易于分享: 配合 frp 或 ZeroTier,可以轻松将游戏库分享给朋友,实现“云端联机”或远程游玩。

💡 适用场景:

  • 搭建家庭私有“云游戏库”,统一管理童年回忆。

  • 在办公室摸鱼时,通过浏览器偷偷玩一把 GBA 游戏(无需安装软件,隐蔽性强)。

  • 作为 Nextcloud 或 AList 的补充,提供在线预览和试玩功能。

  • 配合 Kaijiera 或 RetroArch Netplay,实现基于网页的远程双人对战。

Docker 运行 EmulatorJS 容器命令说明


命令示例

docker run -d --name emulatorjs \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -p 8004:80 \
  -p 8005:3000 \
  -v G:/docker/game/emulatorjs/config:/config \
  -v G:/docker/game/emulatorjs/data:/data \
  linuxserver/emulatorjs:1.7.2

参数解析

  • -d:后台运行容器

  • --name emulatorjs:容器名称为 emulatorjs

  • -e PUID=1000 / -e PGID=1000:设置容器内用户和用户组的 ID,确保文件权限一致

  • -e TZ=Asia/Shanghai:设置时区为上海

  • -p 8004:80:将本地 8004 端口映射到容器 80 端口(Web 管理界面)

  • -p 8005:3000:将本地 8005 端口映射到容器 3000 端口(API 或其他服务)

  • -v G:/docker/game/emulatorjs/config:/config:配置文件挂载

  • -v G:/docker/game/emulatorjs/data:/data:数据文件挂载

  • linuxserver/emulatorjs:1.7.2:指定使用的镜像版本


使用说明

  1. 请确保本地目录 G:/docker/game/emulatorjs/config 和 G:/docker/game/emulatorjs/data 已创建。

  2. 运行命令后,可通过访问 http://localhost:8004 进入 EmulatorJS 管理页面。

  3. 如需调整端口或路径,根据实际需求修改命令参数。


小提示:

如遇权限或端口冲突问题,检查本地文件夹权限及端口占用情况。


支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!