测试 NAS 容器服务恢复时的 Docker Compose 排查记录

简介: 节后恢复NAS测试环境,Jellyfin、PhotoPrism、Home Assistant容器页面异常。本文记录分层排查过程:从磁盘空间、镜像拉取、Compose状态,到挂载路径、端口连通性及Nginx反向代理配置,精准定位三处问题并修复。(239字)

节后恢复一台测试 NAS,上面跑了几个容器服务:Jellyfin 做媒体预览,PhotoPrism 做照片索引,Home Assistant 做设备状态面板。5 月 7 日上午恢复时,docker compose up -d 没报错,但几个服务的页面状态不一致。

这篇记录排查顺序,重点是 Docker Compose、挂载卷、端口和反向代理。

环境目标

NAS / Linux
Docker Engine
Docker Compose
Jellyfin: 8096
PhotoPrism: 2342
Home Assistant: 8123
Nginx: 80/443

基础检查:

df -h
docker version
docker compose version
docker compose ps

镜像预检

compose 里同时使用 Docker Hub 和 GHCR 镜像。为了避免整组拉取卡住,先把核心镜像拆开。

docker pull docker.1ms.run/jellyfin/jellyfin:latest
docker pull docker.1ms.run/photoprism/photoprism:latest
docker pull ghcr.1ms.run/home-assistant/home-assistant:stable
docker pull docker.1ms.run/nginx:stable-alpine

确认镜像层没问题后,继续执行:

docker compose pull
docker compose up -d
docker compose ps

Compose 配置片段

services:
  jellyfin:
    image: docker.1ms.run/jellyfin/jellyfin:latest
    ports:
      - "8096:8096"
    volumes:
      - /data/docker/jellyfin/config:/config
      - /data/media:/media:ro
    restart: unless-stopped

  photoprism:
    image: docker.1ms.run/photoprism/photoprism:latest
    ports:
      - "2342:2342"
    volumes:
      - /data/photos:/photoprism/originals
      - /data/docker/photoprism/storage:/photoprism/storage
    restart: unless-stopped

  homeassistant:
    image: ghcr.1ms.run/home-assistant/home-assistant:stable
    network_mode: host
    privileged: true
    volumes:
      - /data/docker/homeassistant:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped

这里把媒体、照片、配置目录分开。Jellyfin 的媒体目录只读挂载,PhotoPrism 的 originals 和 storage 分开,Home Assistant 使用 host 网络。

排查挂载卷

页面异常时,先看容器拿到的挂载,而不是只看 compose 文件。

docker inspect jellyfin --format '{
   {json .Mounts}}'
docker inspect photoprism --format '{
   {json .Mounts}}'
docker inspect homeassistant --format '{
   {json .Mounts}}'

再看宿主机路径:

ls -lah /data/media
ls -lah /data/photos
ls -lah /data/docker

这次 Jellyfin 媒体库为空,是因为 /data/media 下面实际只有一个迁移后的空目录,真实媒体目录被挪到了 /data/video。修正挂载后重新启动 Jellyfin,媒体库恢复扫描。

排查端口和反代

先看端口:

ss -lntp
curl -I http://127.0.0.1:8096
curl -I http://127.0.0.1:2342
curl -I http://127.0.0.1:8123

内网端口通以后,再看 Nginx:

docker logs --tail=120 nginx

一个 502 是 upstream 写了旧容器名。改完 upstream 后,只重载 Nginx,不需要重启所有业务容器。

复盘

这次恢复里真正的问题有三个:

问题 表现 处理
镜像源不稳定 docker compose pull 先拆镜像预检
挂载路径变更 Jellyfin 媒体库为空 修正 bind mount
反代上游过期 域名访问 502 更新 Nginx upstream

最终保留下来的顺序:

磁盘 -> 镜像 -> compose -> mount -> 权限 -> 端口 -> 反代 -> 应用日志

NAS 或测试机上跑容器服务时,不要把所有异常都归到 Docker。Docker 负责进程和镜像,数据还在宿主机目录,入口还在网络和反代。分层排查能少走很多弯路。

相关文章
|
1月前
|
机器学习/深度学习 分布式计算 搜索推荐
PAI-Rec 召回引擎:构建高性能推荐系统的核心引擎
PAI-Rec是阿里云智能推荐平台的核心召回引擎,经阿里大规模场景验证。支持多路召回融合(U2I/I2I/向量/随机)、召回即过滤、毫秒级实时更新与分布式弹性架构,开箱即用,助力企业构建毫秒级、高精度、强实时的推荐系统。
292 9
|
1月前
|
人工智能 自然语言处理 JavaScript
OpenClaw 汉化中文版(包含新安装包)|Windows 一键安装,全程不用输任何命令
超省心的 OpenClaw 汉化一键安装包,Windows 系统直接双击安装,无需配置环境、不用敲代码命令,自动完成汉化与部署,小白也能轻松搞定。
|
1月前
|
人工智能 JSON 前端开发
用 GitLab MCP Tool 重做代码协作,顺手记下 DMXAPI
本文探讨GitLab MCP Tool如何将大模型接入真实工程上下文——不再依赖人工拼凑信息,而是让模型按需、分步、可验证地读取Issue、MR、CI日志等分散数据,构建“可追溯的推理链”。核心价值在于提升判断可信度,而非替代编码。(239字)
|
12天前
|
存储 人工智能 固态存储
阿里云4核云服务器租用价格解析:4核8G、4核16G、4核32G配置最新收费标准与活动价格
本文介绍了阿里云4核云服务器的配置选择、价格体系及购买策略。4核配置涵盖经济型e实例、通用算力型u2i/u2a、计算型c9i/c9a、通用型g9及内存型r9等多个实例族,分别适用于个人博客、企业Web应用、AI推理及大数据处理等场景。同时,文中列出了4核8G、16G、32G在各实例下的官方标准价及2026年活动价(如u2i实例4核8G低至1252.63元/年起)。建议用户根据业务需求选型,结合优惠券实现折上折,有效降低上云成本。
|
9天前
|
人工智能 JavaScript 安全
OpenClaw部署完整指南:从环境准备到生产环境
本文详解OpenClaw部署全流程,剖析其Node.js依赖、WSL2要求、网络与权限等高门槛,并引出国产轻量替代方案BoClaw——支持一键安装、本地优先、三层安全防护与14000+技能生态,助力非专业用户快速落地AI智能体。
|
26天前
|
供应链 安全 Java
Java安全漏洞深潜——反序列化、Log4Shell与供应链攻击
由于Java广泛应用于银行、政府、大型企业,其安全性备受瞩目。然而近年来频频爆发的高危漏洞(Log4Shell、Spring4Shell、FastJSON反序列化等)敲响了警钟。
181 7
|
24天前
|
人工智能 自然语言处理 搜索推荐
知识蒸馏(KD)深度落地:解锁GEO生成式优化轻量化高性能方案
知识蒸馏作为大模型轻量化的核心底层技术,有效解决了大模型落地贵、运行慢、部署难的痛点,让轻量化模型也能具备接近大模型的搜索语义理解与高质量内容生成能力。
|
9天前
|
存储 安全 JavaScript
仿 iCloud 存储告警钓鱼攻击机理与多维度防御研究
本文剖析2026年全球扩散的仿iCloud钓鱼攻击,揭示其情感胁迫、Punycode混淆、高仿真页面等技术机理,提出融合文本、URL、视觉、行为的四维检测模型,检出率93.7%、误报率<1.5%,提供可落地的终端-平台-厂商闭环防御方案。(239字)
49 4
|
14天前
|
人工智能 安全 前端开发
AREE与Java生态:当企业级执行环境遇上确定性
Java生态长期缺乏AI Agent框架,而AREE(AI-Ready Execution Environment)填补了这一空白。它基于Java原生能力,支持可视化思维链编排、安全工具调用、MCP协议集成,并在中止控制、分层超时、并发安全、可观测性与失败隔离五方面实现确定性执行,助力企业复用现有资产,无缝融入运维体系。
|
24天前
|
人工智能 JSON 编解码
开源短剧翻译平台的OCR字幕提取技术:从视频帧到SRT的完整链路(2026)
短剧出海翻译首道难关是硬字幕提取——字幕烧录在视频中,无独立文本。NarratorAI“字幕君”通过OCR+动态关键帧+音频校准等10步链路,精准提取带时间轴的SRT文件,支持全自动或人工校对模式,兼顾精度与效率。

热门文章

最新文章