极空间Z4 Pro 跑 Docker:这半个月我踩了哪些坑
折腾极空间 Z4 Pro 这半个月,终于把它调教顺了。之前一直用群晖,图的就是个“稳”,懒得动脑子。但最近家里想搞个软路由加 NAS 的混合体,为了省电费,决定试试极空间。刚到手时,最大的拦路虎就是 Docker 镜像源。国内直连 Docker Hub 那个速度,转圈转到让人怀疑人生,真的急人。
1. 网络代理:土办法最管用
我踩的第一个大坑就是“网络代理”。很多人第一反应是配 Hosts,或者用第三方镜像加速器。我一开始也这么干,结果发现极空间底层和群晖不一样,它对系统级的修改比较保守,动不动就回滚或者不生效。
我在 Z4 Pro 的 Docker 里拉取 linuxserver/emby,卡了十分钟才下来 50MB,心态直接崩了。后来翻了半天社区帖子,发现极空间自带的 Docker Hub 镜像源支持自定义,但稳定性确实不如一些动态更新的加速节点。
我的解法比较土:我在 VPS 上跑了一个简单的 Nginx 反向代理,通过 SSH 隧道把流量打穿过去,在极空间的 Docker 网络设置里,把 HTTP_PROXY 环境变量写死指向我的 VPS。虽然配置稍微麻烦点,但之后拉取镜像的速度直接起飞,基本满速下载。
操作提示:如果你也是类似情况,不要死磕系统级 Hosts,直接走环境变量代理更稳。
2. 权限与挂载:Btrfs 文件系统的陷阱
第二个痛点是权限和挂载。极空间的文件夹权限逻辑和 Linux 原生有点出入。我试着在 Docker 里挂载数据卷,一开始直接写 /volume1/docker/emby,结果容器里进去一看,全是只读,或者根本就是空的。
后来我才反应过来,极空间用的是 Btrfs 文件系统,而且在 Web 界面里看到的“共享文件夹”,在 Docker 容器里对应的路径是 /storage/XXXX 或者类似的映射路径,而不是物理路径。
最稳妥的办法是:
- 先在 Web 界面建好共享文件夹。
- 在 Docker 高级设置里,直接通过图形界面选择那个共享文件夹进行挂载。
- 千万不要让 Web 界面帮你解析路径字符串,否则极易出错。
3. 存储池:务必给 Docker 划固态盘
极空间 Z4 Pro 允许组建 RAID,但 Docker 数据如果放在 RAID1 或者 RAID5 里,写性能会受限。我特意把 Docker 数据卷单独划在一个 SSD 盘上,组成 RAID1。
这点很重要。如果你把 Docker 镜像、容器数据和数据库都塞在机械硬盘的 RAID5 里,并发写的时候,I/O 等待会让你的 Jellyfin 或者 Plex 转码卡死。
我测过一组数据:
- SSD 做 Docker 盘:启动 Emby 冷加载速度大概是 8 秒。
- 机械硬盘:启动 Emby 冷加载速度大概是 45 秒。
对于日常家用,这差距体验感完全不同。
4. 隐蔽的坑:时区不对齐
很多开源镜像默认是 UTC 时区,导致你在 Web 界面看到的日志时间,比实际快 8 小时。我在 docker-compose.yml 里全局加了时区环境变量:
environment:
- TZ=Asia/Shanghai
这个看似小事,但一旦日志乱序,排查问题时会非常痛苦。
5. “零门槛”的 A 面与 B 面
最后聊聊极空间的“零门槛”到底值不值得。
- 对于小白:极空间的 Web 界面确实友好,可视化操作降低了门槛。
- 对于进阶用户:如果你对 Docker 网络原理(比如 Bridge 模式和 Host 模式的区别)有需求,极空间的 GUI 封装反而成了束缚。
我后来放弃了纯 GUI 操作,转而在 SSH 里敲命令。比如我要给容器分配固定 IP,Web 界面里只能选随机,我得手动编辑 /etc/containers/ 下的配置文件,重启 docker 守护进程才能生效。这种“半自动”的体验,让高级用户有点尴尬,但让小白用户安心。
核心结论
极空间部署 Docker,核心思路就是:网络走代理,数据放固态,时区要统一,权限避坑走 GUI 挂载。
别指望它像群晖那样什么都给你包好,也别指望它能像原生 Linux 那样自由。它是个很好的中间层,适合那些想要省心又不想完全放弃折腾乐趣的人。
最后给个建议:如果你家里只有机械硬盘,我建议把 Docker 容器数量控制在 3 个以内,否则机械盘的扇区寻道声会伴随你整个深夜。
共 1 条评论