docker搭建EmulatorJS模拟器
📝 笔记摘要: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:指定使用的镜像版本
使用说明
请确保本地目录 G:/docker/game/emulatorjs/config 和 G:/docker/game/emulatorjs/data 已创建。
运行命令后,可通过访问 http://localhost:8004 进入 EmulatorJS 管理页面。
如需调整端口或路径,根据实际需求修改命令参数。
小提示:
如遇权限或端口冲突问题,检查本地文件夹权限及端口占用情况。
