80 lines
2.7 KiB
Markdown
80 lines
2.7 KiB
Markdown
|
||
---
|
||
要在Docker中运行或打包儿时的经典游戏(如红白机、街机、DOS游戏等),通常需要通过模拟器来实现。以下是几种方法和资源,帮助你找到或创建这类Docker镜像:
|
||
|
||
---
|
||
|
||
### **1\. 现成的游戏模拟器Docker镜像**
|
||
|
||
一些开发者已经将游戏模拟器打包成Docker镜像,并预装了游戏ROM。你可以在以下平台搜索:
|
||
|
||
- **Docker Hub**
|
||
|
||
- 搜索关键词:`retroarch`、`dosbox`、`mame`、`nestopia`(NES模拟器)、`ppsspp`(PSP模拟器)等。
|
||
|
||
- 示例镜像:
|
||
|
||
- `dolphin-emu`(GameCube/Wii模拟器)
|
||
|
||
- `retroarch/retroarch`(多平台模拟器前端)
|
||
|
||
- `jamesnetherton/docker-retroarch`(带Web界面的RetroArch)
|
||
|
||
- **GitHub** 一些开源项目提供定制化的游戏模拟器Dockerfile,例如:
|
||
|
||
- [RetroPie-Docker](https://github.com/playonlinux/RetroPie-Docker)
|
||
|
||
- [docker-arcade](https://github.com/arcade/docker-arcade)(基于MAME的街机模拟器)
|
||
|
||
|
||
---
|
||
|
||
### **2\. DIY:自己构建Docker镜像**
|
||
|
||
如果想完全自定义游戏列表,可以基于模拟器手动构建镜像:
|
||
|
||
#### **示例:使用DOSBox运行经典DOS游戏**
|
||
|
||
```Dockerfile
|
||
FROM ubuntu:22.04
|
||
RUN apt-get update && apt-get install -y dosbox
|
||
COPY ./games /games # 将游戏ROM(如仙剑奇侠传、大富翁等)放入/games目录
|
||
CMD ["dosbox", "/games/play.bat"]
|
||
```
|
||
|
||
#### **示例:使用RetroArch(多平台模拟器)**
|
||
|
||
```Dockerfile
|
||
FROM alpine:latest
|
||
RUN apk add retroarch --repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing
|
||
COPY ./roms /roms # 放入NES、SNES等ROM文件
|
||
CMD ["retroarch", "-L", "/usr/lib/libretro/nestopia_libretro.so", "/roms/super_mario.nes"]
|
||
```
|
||
|
||
---
|
||
|
||
### **3\. 注意事项**
|
||
|
||
- **法律风险**:游戏ROM的版权属于开发商,Docker镜像中**不能直接包含有版权的ROM**。建议自行提供合法ROM文件(如自己拥有的游戏备份)。
|
||
|
||
- **性能需求**:3D游戏(如PS1、PSP)需要硬件加速,可能需要额外配置Docker的GPU支持(`--gpus all`)。
|
||
|
||
- **前端界面**: 如果需要图形界面(如RetroArch的UI),可以通过以下方式访问:
|
||
|
||
- 映射X11 socket:`-v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY`
|
||
|
||
- 使用VNC/Web界面:如`accetto/ubuntu-vnc-xfce`镜像+模拟器组合。
|
||
|
||
|
||
---
|
||
|
||
### **4\. 推荐工具链**
|
||
|
||
- **轻量级方案**:单独模拟器(如`dosbox`、`mednafen`)+ 自定义ROM目录。
|
||
|
||
- **全平台方案**:`RetroArch` + 多个核心(cores)支持不同平台。
|
||
|
||
- **街机方案**:`MAME`或`FinalBurn Neo`镜像。
|
||
|
||
|
||
如果有具体游戏平台需求(如只想玩FC或GBA),可以进一步缩小工具选择范围。 |