用项目而不是镜像来管理
把服务按用途分组,例如 photos、notes、home,每组有自己的 compose.yaml、数据目录和 README。不要把十几个没有关系的服务都塞进一个巨大 Compose 文件,否则更新一个应用时更容易误伤其他服务。
先做一份服务清单
每个服务记录四件事:对外访问端口、存储位置、依赖的其他服务、重建步骤。端口最好集中登记,避免多个服务争抢同一个宿主机端口。
/srv/apps/
photos/
compose.yaml
README.md
notes/
compose.yaml
data/
monitoring/
compose.yaml
网络隔离要有边界
同一 Compose 项目里的服务通常可通过服务名称互相访问。跨项目通信时,要明确是否确实需要共用网络,而不是为了方便把所有容器放进同一个大网络。数据库只供应用访问时,不必在主机上映射数据库端口。
备份范围不止 Compose
项目文件只能描述如何启动;照片、数据库、上传附件才是最难重建的部分。应将两者分别纳入备份计划,并定期拿一台测试机器演练恢复。
维护的终点是可理解
半年后你打开这台服务器,应该能够在几分钟内回答:哪个容器负责什么、哪个目录能删、数据在哪、如何停机维护。这就是良好整理的价值。
以上内容用于经验交流。实际操作前,请核对设备型号、软件版本与官方说明,并备份重要配置。