如何快速完成 Sunshine 的 Docker 容器化部署面向新手的完整指南【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/SunshineSunshine 是一款开源的自建游戏串流服务端配合 Moonlight 客户端即可把电脑上的游戏画面带到任意设备而借助 Docker 容器化部署你可以在十几分钟内完成安装、配置与上线省去手工编译和依赖折腾把精力留给真正的游戏体验。部署前的环境准备前置检查清单与三个关键概念动手敲命令之前建议先花两分钟对照下面的检查项确认环境。四项全部通过后面的流程基本不会踩坑。操作系统与内核Docker 容器化部署需要 64 位 Linux 主机建议内核 5.10 以上老内核对 GPU 直通的支持较差。Windows、macOS 上的 Docker Desktop 虽然也能运行但显卡透传效果不稳定不推荐用于游戏串流。容器引擎版本Docker 建议 20.10 及以上可用docker --version确认习惯 Podman 的用户需要 4.0 以上的版本。GPU 与渲染设备串流质量依赖硬件编码。请确认/dev/dri目录存在对应 Intel/AMD 显卡或 NVIDIA 驱动已正确安装。端口占用Sunshine 需要一组连续的端口启动前先确认 47984–48010 区间没有被其他服务占用。三个需要先理解的关键概念镜像标签Tag可以理解为镜像的版本编号。从 v0.18.0 起Sunshine 取消了latest、master、vX.X.X这类单段标签必须使用版本-系统的组合形式如latest-ubuntu-22.04否则拉取会直接失败。目前官方提供 debian-bookworm、ubuntu-22.04、ubuntu-24.04 三种系统后缀且均同时支持 amd64 与 arm64 两种架构。端口映射Port Mapping写法是宿主机端口:容器内端口。左侧可以随意改成你喜欢的数字右侧是服务固定监听的端口、不可改动访问 Web 管理页时用的是左侧端口。PUID / PGID容器内默认用户名为lizard通过这两个环境变量可以把容器用户映射到你主机上的某个真实用户 ID从而避免挂载目录的读写权限错乱。三步完成最小化 Docker 容器化部署下面以 Docker 为例给出最小可运行的方案整个过程只需要三条命令。第一步拉取镜像docker pull lizardbyte/sunshine:latest-ubuntu-22.04第二步准备数据目录并赋权mkdir -p ~/sunshine-data sudo chown -R 1000:1000 ~/sunshine-data第三步启动容器docker run -d \ --name sunshine \ --restart unless-stopped \ --ipc host \ --device /dev/dri \ -e PUID1000 -e PGID1000 -e TZAsia/Shanghai \ -v ~/sunshine-data:/config \ -p 47984-47990:47984-47990/tcp \ -p 48010:48010 \ -p 47998-48000:47998-48000/udp \ lizardbyte/sunshine:latest-ubuntu-22.04启动完成后在浏览器打开http://主机IP:47990设置用户名与密码即可进入管理界面随后就能在 Moonlight 客户端中看到这台主机了。 提示如果主机没有可用的显卡可以去掉--device /dev/dri服务依然能启动只是编码会退化为软件模式画质与延迟表现会有明显下降。按场景进阶配置家庭、局域网与公网串流的差异组合同一个镜像不同使用场景下的配置侧重点差别很大下面按场景拆分推荐组合。场景一家庭内网自用只在自家局域网内使用、追求简单省事端口映射保持默认即可不需要启用 UPnP数据目录放在本机磁盘即可无需额外调优建议在管理界面的 Configuration → Network 中关闭 Upnp 选项减少不必要的端口暴露场景二局域网多设备共享家里有多台电脑、手机和电视盒子同时使用完整映射默认端口段47984-47990/tcp、47998-48000/udp、48010保证客户端发现与连接稳定为主机设置固定 IP 或主机名避免 DHCP 地址变化导致客户端失联在 Applications 页面中添加 Steam、桌面等常用入口方便一键启动场景三跨公网串流生产级环境需要在办公室、旅途中随时连回家中的电脑开启 UPnP 自动端口转发或在路由器上手动添加端口映射规则务必修改 Web 管理界面的默认密码并定期更换避免暴露在公网后被扫描利用把镜像标签从latest换成具体的版本号锁定运行行为防止意外升级常用参数速查表一张表看懂部署参数下表集中整理了部署时最常用的一批参数涵盖作用、推荐值、是否必须三项信息。参数作用说明推荐值是否必需-p 外部端口:47990Web 管理界面端口47990是-v 宿主机目录:/config配置文件持久化挂载~/sunshine-data是-p 47984-47990:47984-47990/tcpTCP 控制与 RTSP 会话端口保持默认是-p 47998-48000:47998-48000/udpUDP 视频、音频与控制端口保持默认是-p 48010:48010辅助连接端口保持默认是-e PUID数字容器内用户 ID1000否-e PGID数字容器内用户组 ID1000否-e TZ时区日志与任务时区Asia/Shanghai否--device /dev/dri透传 GPU 渲染设备有 GPU 时建议开启否--ipchost共享宿主机内存空间建议开启否需要精确调整网络行为如 UPnP 转发策略、编码带宽时可以登录管理界面的 Configuration 页面逐项修改页面自带关键词搜索输入Upnp之类的字样即可快速定位对应选项。高频报错排查清单症状、原因与解决办法下面按症状 → 原因 → 解决的问答形式整理了几类被问得最多的问题遇到报错时可直接对照。问题 1镜像拉取失败提示标签不存在原因仍在沿用latest或v0.18.0之类的旧式单段标签解决改为版本-系统组合标签如latest-ubuntu-24.04或直接指定 commit 哈希问题 2Web 界面能打开但客户端始终连不上原因端口段未完整映射或主机防火墙拦截了 UDP 流量解决核对三条-p参数是否齐全在防火墙中放行 47984–48000 与 48010 端口问题 3容器正常启动但画面严重卡顿原因未透传 GPU编码退化为软件模式解决确认/dev/dri存在后加上--device /dev/dri并在 Troubleshooting 页面确认实际使用的编码器问题 4挂载目录出现权限报错原因宿主机目录属主与容器的 PUID/PGID 不一致解决用id 用户名查询真实 ID让 PUID/PGID 与其对齐再执行chown修正目录属主日志是定位问题的第一手资料。管理页内置日志查看器支持关键词搜索与一键复制导出编码器加载失败等错误信息会直接显示在这里建议遇到异常时先看这里再动手。稳定性与安全优化建议版本锁定优先于追新生产环境不要长期停留在latest改用固定版本标签升级前先在测试环境验证再应用到正式实例。配置与容器解耦所有配置都落在/config挂载卷中容器销毁重建不影响数据建议定期备份该目录。限制资源占用通过--memory与--cpus限制容器的内存与 CPU 上限避免串流时拖垮同机运行的其他服务。坚持最小权限原则不要给容器privileged权限GPU 直通用--device白名单即可满足需求。关注官方资料更完整的上手指引可参考 getting_started.md想从源码自行构建镜像的读者可以阅读 building.md 与 DOCKER_README.md。总结与下一步容器化部署的核心收益可以概括为一次构建、随处运行镜像把依赖、运行时和配置入口打包在一起换机器、重建环境都只是重新拉取镜像的事。如果你是初次上手从 Ubuntu 22.04 基础镜像配合 Docker Compose 起步是最稳妥的路径已经习惯 Podman 的用户可以直接平替命令参数语义完全一致。下一阶段建议先吃透 Web 管理界面的各项配置再逐步尝试多显卡调度、HDR 串流等进阶玩法把硬件的性能真正榨干。 【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考