Lazy loaded image
Collections
【好玩儿的 Docker 项目】80、90 回忆杀,10 分钟搭建复古中文 DOS 游戏,最多畅玩 1898 款!
00 min
Jul 24, 2023
Jul 26, 2023
type
status
date
slug
summary
tags
category
icon
password
URL

1. 前言

小学的时候,班上有几个同学家里比较富裕,爸爸妈妈给他们买了步步高电子词典,本来是学习的工具,但是有一天发现可以下载游戏,于是学习机就变成了游戏机。
我当时没有这个机器,只能看着他们玩,还记得又一次把作业给同学抄,然后借他的步步高玩了金庸群侠传,非常上头。后来还玩了伏魔记、魔塔……
一晃眼,现在都工作好多年了……
今天就让我们重温一下儿时的游戏吧。

2. 项目展示

直接丢几个图:
notion image
notion image
notion image
notion image
notion image
notion image
notion image

2.1 特点

  • 支持 docker 一键部署
  • 中文 DOS 游戏合集,目前共有 1898 款游戏
  • 支持存档

3. 相关地址

咕咕的 Demo:https://games.gugu.ovh/

4. 搭建环境

  • 服务器:腾讯香港轻量应用服务器 24 元 / 月 VPS 一台 咕咕自己搭建用的是香港的腾讯轻量应用服务器 ,(这次最好选带宽比较大的,而且线路还不错的机器)如果是小白刚开始玩的话,可以选择 Racknerd 的高性价比服务器(注意地区选美国西部城市的)
  • 系统:Debian 11 (DD 脚本 非必需 DD,用原来的系统也 OK,之后教程都是用 Debian 或者 Ubuntu 搭建~)
  • 【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx(安装地址
  • 【非必需本教程选用】安装好 Nginx Proxy Manager(相关教程

5. 搭建视频

5.1 YouTube

5.2 哔哩哔哩

6. 搭建方式

如果你不是用的腾讯云的轻量应用服务器,可以直接跳到 6.1 部分。

安装系统(腾讯云轻量应用服务器)

notion image
腾讯云轻量服务器最大的特点就是 “轻量”,相比 CVM,更适合小白上手,这边我们之间选择 Docker 基础镜像,就可以省去后面安装 Docker 的步骤 (如果你非要用国内的服务器,这边装的 Docker 镜像还会帮你配置好国内镜像源,让你加速访问 docker 镜像资源) 不建议用国内的 。

登陆(腾讯云轻量应用服务器)

6.1 安装 Docker 与 Nginx Proxy Manager

可以直接参考这篇内容:

6.2 创建安装目录

创建一下安装的目录:
英文输入法下,按 i
这边有两种搭建方式,因为 36G 的游戏做成 docker 的镜像太大了,所以作者只是将 40 多个经典的 DOS 游戏封装到了 docker 的镜像里面,所以你的服务器如果硬盘不够大,可以直接用默认的方式安装。
修改好之后,注意切换成英文输入法,然后按一下 esc,然后 :wq 保存退出。
如果你的服务器硬盘大于 36G,那你可以尝试直接装 1989 款游戏。
修改好之后,注意切换成英文输入法,然后按一下 esc,然后 :wq 保存退出。
然后在
notion image
注意这边下载默认是下载 1989 款游戏的,总共 36G 左右,如果你的服务器的下载带宽不大的话,可能需要非常非常久。这也是这边推荐大家用海外的服务器的原因,带宽普遍较大,比如 Racknerd(注意选美西地区),下载是 G 口的速度,理论值在 128M/s,下载起来相对较快。
如果出现:
输入:
再重新运行:
即可。
如果出现:
说明电脑上没装 python,你需要装一个
这边还是以 Debian 系统为例:
即可。
如果你担心 SSH 断开,或者你不想一直等着,想让它后台慢慢下载,可以试试咕咕之前分享过的 Screen 的使用方法:Linux 实用工具 Screen —— 再也不怕因为网络连接中断杀死任务了!
下载完成之后,你可以运行:
查看文件夹中的文件数量。不出意外应该显示 1898
你也可以用:
计算文件夹的总大小,不出意外应该显示:
没什么问题的话,我们可以运行:
或者
取决于你的 docker compose 的版本,新的是没有 -
等待拉取镜像即可。

6.3 打开服务器防火墙(非必需)并访问网页

如果你是阿里云、腾讯云、甲骨文、azure 等大厂的机器,可能需要打开防火墙的端口 8090
举例,腾讯云打开方法如下(部分服务商没有自带的面板防火墙,就不用这步操作了):
图中示例填的是 5230,备注填的是 memos,这边我们填 8090,示例填 games ,确定即可(如果你在 docker-compose 文件里换了 9009,这边就需要填 9009,以此类推)
查看端口是否被占用(以 8090 为例),输入:
如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~
如果出现:
运行:
如果端口没有被占用(被占用了就修改一下端口,比如改成 8081,注意 docker 命令行里和防火墙都要改)
最后:
理论上,等出现绿色的 done 字样,
我们就可以输入 http://ip:8090 访问了。
不过现在我们还是用 IP + 端口的方式访问的,不够优雅,一般情况下,我们都需要给网页加上 https!让网页更安全!
namesilo 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo 上 6 位数字的 xyz 续费永远都是 0.99 美元 = =)
如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 gugugege 来获得 1 美元的优惠(失效的话可以评论区反馈一下~)
namesilo 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些丑 古老 = =)
我们接着往下看!

7. 反向代理

我们要用域名而不是 IP + 端口的方式来访问我们的服务!

7.1 利用 Nginx Proxy Manager

在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上域名购买、域名解析 视频教程
之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager相关教程))
直接丢几张图:
IP 填写:
如果 Nginx Proxy Manager 和 games 在同一台服务器上,可以在终端输入:
查看对应的 Docker 容器内部 IP。
否则直接填 games 所在的服务器 IP 就行。
再次打开,勾选这些:
然后就可以用域名来安装访问了。

7.2 利用宝塔面板

发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:
直接新建一个站点,不要数据库,不要 php,纯静态即可。
然后打开下面的配置,修改 Nginx 的配置。
代码如下:
此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。
有同学可能会问,为什么不直接用宝塔自带的反向代理功能。
也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =
所以后来就不用了,直接用上面的方法来操作了。

8. 使用教程

参考视频。

8.1 更新 games

一般应该不需要怎么更新,作者停更很久了,不过这边还是提供一下 docker-compose 安装的应用的基本更新方法。
提示:
输入 y
利用 Docker 搭建的应用,更新非常容易~

8.2 卸载 games

可以卸载得很干净。

9. 常见问题

  • 部分游戏没有按键说明,可能需要自己在键盘尝试一下,一般就是 shiftaltenter空格commandzx 这几个键,大家自己试试看。

10. 结尾

祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区互相交流探讨。
同时,有能力给项目做贡献的同学,也欢迎积极加入到 项目 中来,贡献自己的一份力量!
最后,感谢开发人员们的辛苦付出,让我们能用到这么优秀的项目!

参考资料

上一篇
Enable network authentication with Azure AD only joined devices & Intune
下一篇
Demo Article