搭载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-smi和nvidia-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




