You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker新手在树莓派部署Jellyfin容器启动失败求助

解决树莓派上Jellyfin容器Exited(132)的问题

核心问题分析

容器退出码132对应SIGILL(非法指令),结合树莓派的ARM架构,最可能的原因是拉取的Jellyfin镜像与树莓派架构不匹配(默认docker pull可能拉取了x86_64架构的镜像,无法在ARM设备上运行)。

分步解决与调试

1. 确认并更换匹配架构的镜像

  • 先检查当前镜像的架构:
    docker inspect jellyfin/jellyfin | grep Architecture
    
    如果输出是"Architecture": "amd64",说明镜像不兼容。
  • 根据树莓派的架构拉取对应镜像:
    • 64位树莓派(Pi 3B+/4/5等):
      docker pull jellyfin/jellyfin:latest-arm64v8
      
    • 32位树莓派(Pi 2/3等):
      docker pull jellyfin/jellyfin:latest-arm32v7
      

2. 修复用户权限上下文问题

容器内whoami找不到用户名、touch提示无法设置时间,是因为容器的/etc/passwd没有你指定的UID/GID对应的用户条目。可以挂载宿主机的/etc/passwd文件解决:
修改启动命令,添加只读挂载:

docker run -it -u {uid}:{gid} --name jellyfin --net=host \
  --volume {HOMEDIR}/jellyfin-config:/config \
  --volume {HOMEDIR}/jellyfin-cache:/cache \
  --mount type=bind,source={HOMEDIR}/Music,target=/media \
  --mount type=bind,source=/etc/passwd,target=/etc/passwd,ro \
  jellyfin/jellyfin:latest-arm64v8  # 替换为对应架构的标签

3. 简化命令逐步排查

如果还是有问题,先去掉多余参数,用最基础的命令测试镜像是否能正常运行:

docker run --rm -it jellyfin/jellyfin:latest-arm64v8

如果能启动并看到日志输出,再逐步添加挂载、用户、网络参数,定位具体哪个参数导致问题。

4. 进阶调试方法

  • 进入容器直接调试:
    docker run --rm -it --entrypoint=/bin/bash jellyfin/jellyfin:latest-arm64v8
    
    在容器内执行以下操作:
    1. 找到Jellyfin的执行路径:find / -name jellyfin -type f
    2. 直接执行二进制文件,观察错误:/usr/lib/jellyfin/bin/jellyfin(替换为实际路径)
    3. 检查依赖库是否缺失:ldd /usr/lib/jellyfin/bin/jellyfin
  • 查看宿主机内核日志:
    宿主机上执行dmesg | grep jellyfin,可能会看到内核层面的非法指令记录,进一步确认架构问题。

内容的提问来源于stack exchange,提问作者ShankarG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:42:36