Emulatorjs Docker
EmulatorJs与Docker结合的技术方案是一种通过容器化部署实现Web端复古游戏模拟器的解决方案,其核心是通过Docker容器快速搭建EmulatorJs模拟器环境,支持多平台游戏运行及高效管理。
不想搭建可加群,使用群主服务器
由于维护成本须赞助5元,即可使用服务器,感谢您的理解与支持,付款后截图+Q群1039905535
镜像源网站
输入网址或者点击此处跳转linuxserver/emulatorjs(无法访问须开魔法)
https://hub.docker.com/r/linuxserver/emulatorjs
docker 安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动docker并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
更换docker镜像源
由于镜像源服务器在国外,国内服务器访问可能会非常慢或者失败,所以在拉取镜像前最好换源
nano /etc/docker/daemon.json
输入后会打开一个空白页面
接着将下面的内容粘贴至文件里
{
"registry-mirrors": [
"https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com",
"https://mirror.ccs.tencentyun.com",
"https://0dj0t5fb.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://6kx4zyno.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"https://akchsmlh.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
接着按Ctrl+X
弹出提示,按y,再回车确定
确认系统内核获取相关镜像(非必要命令)
输入命令获取系统内核,特定内核需要拉取专门的镜像文件
uname -m
这里展示两个
输出 | 架构 |
---|---|
i386, i686 | i386 |
x86_64 | amd64 |
arm, armel | arm_garbage |
armv7l, armhf | armv7 |
aarch64, armv8l | arm64 |
mips | mips |
mips64 | mips64 |
大部分情况下都是x86架构的,对比标签使用即可
若是如上图输出armv7l,通过百度可得知armv7 为32位
接下来再镜像网站搜索arm32即可找到对应镜像
拉取镜像并部署
首先创建两个文件夹,用于存放容器后台用户数据(存档之类)和游戏room
mkdir -p /up/emulatorjs/config && mkdir /up/emulatorjs/data
为了方便后续容器操作我们可以修改文件夹权限
sudo chown -R 1111:1111 /up
准备工作完毕,输入以下命令
docker run -d --name emulatorjs -e PUID=1111 -e PGID=1111 -e TZ=Asia/Shanghai -p 5555:80 -p 3000:3000 -v /up/emulatorjs/config:/config -v /up/emulatorjs/data:/data linuxserver/emulatorjs:1.9.2
参数说明:
-d: 后台运行容器
--name: 为容器指定一个名称
-e PUID -e PGID:指定用户和用户组解决可能会发生的权限问题
-e TZ:修改时区
-p: 端口映射,格式为 主机(宿主)端口:容器端口
-v: 工作目录映射。形式为:-v 宿主机路径:/config,-v 宿主机路径:/data,后者不能修改。
完成后输入,确定容器是否运行,可以看到容器已正常运行
docker ps
如何使用
后台
首先访问后台,浏览器输入:本地ip:3000(云服务器输入ipv4地址:3000,若无法访则还需在安全组中添加放行端口)进入后台管理面板,进入后点击图2 Download,下载必备文件
出现下图Downloaded All Files,表示下载完毕
刷新网页,如下图所示
File Management(room文件上传)
选择你需要上传游戏的模拟器,选择文件,打开就上传到服务器端了
然后点击Rom Management,这里以gba为例,点击Scan
最后显示如图表示成功,每次上传新游戏都须如此操作
Profile Management(用户管理)
创建用户
打开我们会发现什么都没有,因为还没游玩上传存档
正常上传后会是
删除用户(谨慎操作,以防数据丢失),选择用户后delete即可删除
前端正式使用
后端准备完毕可以进行访问游玩了,浏览器输入:本地ip:5555(云服务器输入ipv4地址:5555,若无法访则还需在安全组中添加放行端口)
先登录用户输入我们之前创建好的用户名与密码
因为还没存过档所以没有文件内容,我去拿一个存过档的来举例
怎么存档呢,我们打开任意一个游戏,进入游戏后按下F1
操作更改,按z键返回(x键确定)如图找到Input,依次打开即可修改按键映射,有手柄更推荐用手柄玩,也是完美支持的
游戏展示
PC
安卓
外网访问
云服务器ipv4+端口直接外网访问即可
本地服务器,无ipv4地址可考虑内网穿透实现外网访问,如图内网穿透访问
若须域名访问,国内推荐使用云服务器(国内云服务器,域名须备案)