家里那台服务器装了 10 个 Docker 容器之后:一个家庭的真实搭建手记
家里的旧迷你主机原本只用来存照片,孩子要看动画片得先找硬盘,妻子要找一份旧文件得翻三个网盘。今年春天我把它收拾出来,装上系统和 Docker,陆陆续续装了十个容器,每周装一两个,遇到问题就停下来修,修好了再装下一个。这篇手记讲的就是这个过程:十个容器各管什么,先装谁后装谁,哪些地方容易翻车。
动手之前先把风险讲清楚
先备份重要数据。改系统配置、删容器、挪数据目录之前,先把照片和重要文件另外存一份。容器删掉可以重装,卷里面的数据删掉就很难找回来。
别把管理端口直接暴露到公网。家里这些服务默认只在局域网里用,远程访问走反向代理加访问控制,或者走虚拟专用网络。直接把管理后台的端口映射到公网,等于把家门钥匙挂在门口。
一次只动一个容器。装好一个、确认能打开、确认数据落盘位置没错,再装下一个。十个一起装,出问题根本分不清是谁的错。Docker 入门概念见本站的Docker 新手部署容器的方法,旧电脑改家庭服务器的思路见本站的用旧电脑搭家庭存储的方法。
先装地基:三个管理类容器
第一批装的是地基,不直接给家人用,但后面几个都离不开它们。
第一个是 Portainer。它是一个网页版的容器管理面板,能看到哪些容器在跑、占了多少内存、日志里报了什么错。没有它,每次查状态都要敲命令,有它之后点几下就能看到全貌。
第二个是 Nginx Proxy Manager。家里服务一多,每个都要记一个端口,家人根本记不住。这个容器做反向代理,对外只留一个入口,里面按域名分发到不同的容器。详细配置见本站的Nginx Proxy Manager 配置域名的方法。
第三个是 Homepage。它是一个导航页,把十个服务的入口排在一页上,家人打开浏览器就能找到想用的服务。搭建思路见本站的首页仪表盘集中管理服务的方法。
再装生活类:影音、照片和文件
第四个是 Jellyfin。它负责家里的影音,把硬盘上的电影和剧集整理成带海报和简介的媒体库,电视、手机和平板都能打开看。Jellyfin 是免费开源的媒体服务器,不用订阅、不用注册账号(核实日期 2026-11-09)。官方文档给出的默认网页端口是 8096,第一次打开后按向导建管理员账号、指定媒体文件夹就能用(核实日期 2026-11-09)。官方文档同时提醒,不要直接把这个端口开放到互联网,远程看片走反向代理或虚拟专用网络更稳妥(核实日期 2026-11-09)。
第五个是 Immich。它负责照片和视频的自动备份,手机装上应用,连上家里的服务器,拍照后自动上传,还能按人脸和地点搜索。官方文档给出的要求比较实在:内存至少六吉字节、推荐八吉字节,处理器至少两核、推荐四核,数据库必须放在本地固态硬盘上,不能放在网络共享盘里,默认端口是 2283(核实日期 2026-11-09)。第一次导入几万张旧照片时,人脸识别跑了整整两个晚上,期间别再同时跑重活。官方推荐直接下载随版本发布的 Compose 文件和环境变量示例,而不是照抄网上旧文章里的手写配置(核实日期 2026-11-09)。升级前一定先备份数据库,官方说明写明降级不受支持(核实日期 2026-11-09)。
第六个是 Nextcloud。它负责文件同步和共享,家人的文档、表格和扫描件放进去,多台设备自动同步,还能按文件夹共享给家里人。同步目录和照片库目录要分开,别让两个容器互相扫对方的文件夹,否则会出现重复文件和同步冲突。这三个服务的数据卷一定要落在硬盘的固定目录里,不要用匿名卷。
最后装网络和家居类
第七个是 Pi-hole。它负责全家的广告和追踪域名拦截,原理是把它设为家里的域名解析服务器,不想解析的域名直接挡掉,手机和电视不用各装插件。官方文档给出的最低要求很低:内存五百一十二兆字节、空闲磁盘空间两吉字节(核实日期 2026-11-09)。它要占用 53 端口提供域名解析服务,装之前先确认主机上没有别的服务已经占了这个端口(核实日期 2026-11-09)。风险提示要放在前面:改路由器的域名解析地址之前,先记下原来的地址;一旦 Pi-hole 容器挂掉,全家设备都可能上不了网。先在一台手机上手动改解析地址试半天,没问题再改路由器。拦截规则默认就够用,别一上来就加一堆第三方规则列表。
第八个是 Home Assistant。它负责智能家居,把灯、插座、传感器收到一个界面里做自动化。官方文档讲得很清楚:用 Docker 装的是 Home Assistant Container 这种方式,需要 Docker Engine 23.0.0 或更高版本,网页端口是 8123,推荐用主机网络模式方便发现局域网设备,而且这种方式没有附加组件商店,配套服务要自己另外装容器(核实日期 2026-11-09)。自动化规则先从两条最简单的开始,跑稳一个月再加。入门思路见本站的Home Assistant 集中管理智能家居的方法。
第九个是 Uptime Kuma。它负责盯着前面八个服务,哪个打不开就发通知。它本身很轻,装好后把每个服务的地址加进去就行。
第十个是 Paperless-ngx。它负责家里的纸质文件数字化:水电单、保修卡、获奖证书,扫描后扔进去,能按文字搜索找回来。它的具体版本、端口和依赖服务以官方文档为准(未核实:本文写作时没有逐项核对该项目的最新官方 Compose 示例,端口与依赖以官方文档为准)。扫描件先放一个临时文件夹,确认识别和归档都没问题,再批量导入。
三个真实翻车点
第一个翻车点在 Immich。第一次导入时图省事,把数据库目录放在了机械硬盘上,结果导入速度极慢,还出现过一次报错。按官方要求挪回固态硬盘后才恢复正常。教训是数据库和照片原文件要分开盘放,数据库要快,照片原文件要大。
第二个翻车点在 Pi-hole。改完路由器解析地址的当晚,容器因为一次误操作重启失败,全家断网半小时。后来加了两条补救:路由器里留一个备用的公共解析地址做兜底,Pi-hole 容器设为自动重启,并且每次改配置前先导出一份设置备份。
第三个翻车点在更新。有一回把十个容器一起拉取最新镜像、一起重启,结果两个服务因为配置格式变了起不来。后来改成一次只更新一个,更新后打开页面确认一遍再更新下一个。
维护清单:每周十分钟就够
每周花十分钟看一眼有没有容器反复重启、有没有报警、硬盘还剩多少空间。每月把照片库、文件同步目录和各容器的配置目录备份到另一块硬盘上,备份完找一个不重要的容器试着恢复一次,没验证过的备份等于没有备份。
十个容器装完之后,家里的变化不是多了一台服务器,而是少了很多找东西的时间。孩子在电视上直接点开动画片,妻子在手机上搜一张三年前的照片只要几秒,家里的灯和插座按规则自己开关。电费有没有明显变化未核实:本文没有实测整机功耗,具体以你自己的电表读数为准。
如果你也想照着装,建议按本文的顺序来:先装三个管理类,再装三个生活类,最后装网络和家居类。每一批装完都停下来用几天,确认稳定再装下一批。十个容器不是目标,让家人用得顺手才是。