You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

搭载nvidia-container-toolkit的Docker容器启动段错误求助

Immich机器学习Docker容器启动停滞,nvidia-container-cli段错误

使用docker-compose启动Immich机器学习容器时,镜像下载完成后卡在容器创建阶段,容器已创建但无法启动。Docker日志及相关工具无报错,但每次启动时journalctl会记录nvidia-container-cli段错误(SIGSEGV),日志内容如下:

May 23 08:36:26 cyan systemd[1]: Started libcontainer container a05a88a4ac884107e5b0898421910d8380e15906fa17d3f8d5217204c76717b3.
May 23 08:36:27 cyan systemd-coredump[4959]: Process 4941 (nvidia-containe) of user 0 terminated abnormally with signal 11/SEGV, processing...
May 23 08:36:27 cyan kernel: nvidia-containe[4941]: segfault at 0 ip 000077a9e05c3398 sp 00007ffdff95bd80 error 4 in libnvidia-container.so.1.17.7[a398,77a9e05bd000+15000] likely on CPU 2 (core 2, socket 0)
May 23 08:36:27 cyan kernel: Code: 00 8b 00 89 85 38 fe ff ff f6 c4 80 0f 85 d8 01 00 00 48 8d 85 50 fe ff ff 48 89 85 18 fe ff ff 48 8b 85 18 fe ff ff 4c 8b 00 <41> 80 38 40 0f 84 ea 01 00 00 ba f6 01 00 00 bf 49 00 00 00 48 8b
May 23 08:36:27 cyan systemd[1]: Created slice Slice /system/systemd-coredump.
May 23 08:36:27 cyan systemd[1]: Started Process Core Dump (PID 4959/UID 0).
May 23 08:36:27 cyan systemd-coredump[4960]: [🡕] Process 4941 (nvidia-containe) of user 0 dumped core.
                                             
                                             Stack trace of thread 4941:
                                             #0  0x000077a9e05c3398 nvc_ldcache_update (libnvidia-container.so.1 + 0xa398)
                                             #1  0x0000622b6506b451 n/a (/usr/bin/nvidia-container-cli + 0x6451)
                                             #2  0x0000622b65067353 n/a (/usr/bin/nvidia-container-cli + 0x2353)
                                             #3  0x000077a9e03e46b5 n/a (libc.so.6 + 0x276b5)
                                             #4  0x000077a9e03e4769 __libc_start_main (libc.so.6 + 0x27769)
                                             #5  0x0000622b65067655 n/a (/usr/bin/nvidia-container-cli + 0x2655)
                                             ELF object binary architecture: AMD x86-64
May 23 08:36:27 cyan systemd[1]: systemd-coredump@0-4959-0.service: Deactivated successfully.

已完成的排查

  • 系统为完全更新的EndeavourOS
  • 通过pacman安装了最新版nvidia-container-toolkit
  • 尝试多个不同版本的Immich镜像(含之前可用版本),问题一致,排除镜像本身问题
  • 多次重启后错误涉及的CPU核心不同,暂排除硬件问题

进一步调试建议

  • 验证NVIDIA工具链版本兼容性

    • 执行nvidia-sminvidia-container-cli -V查看驱动与工具包版本,确认无版本不匹配
    • 尝试回退nvidia-container-toolkit到上一个稳定版本:sudo pacman -U /var/cache/pacman/pkg/nvidia-container-toolkit-<旧版本号>-x86_64.pkg.tar.zst
  • 测试基础NVIDIA容器

    • 运行基础容器验证工具链是否正常:docker run --rm nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi,若此命令失败,问题出在NVIDIA容器工具链而非Immich
  • 禁用ldcache更新

    • 编辑/etc/nvidia-container-runtime/config.toml,添加或修改disable-ldcache = true
    • 重启Docker服务:sudo systemctl restart docker后重新启动Immich容器
  • 启用调试日志

    • 修改/etc/docker/daemon.json添加:
      {
        "debug": true,
        "log-level": "debug"
      }
      
    • 设置环境变量NVIDIA_CONTAINER_CLI_DEBUG=1后启动容器,查看详细错误输出
  • 修复系统库依赖

    • 执行ldd /usr/bin/nvidia-container-cli检查依赖库状态
    • 重新安装核心库与工具包:sudo pacman -S glibc nvidia-container-toolkit --overwrite '*'

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

火山引擎 最新活动