docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc crea

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process:报错

docker: Error response from daemon: 
failed to create shim task: OCI runtime create failed: 
runc create failed: unable to start container process: 
error during container init: error running hook 
0: error running hook: exit status 127, stdout: , stderr: /usr/bin/nvidia-container-cli: error while loading shared libraries: libseccomp.so.2: cannot open shared object file: No such file or directory: unknown.

error while loading shared libraries: libseccomp.so.2:

/usr/lib64/目录下缺少这个依赖, libseccomp.so.2

使用命令下面的命令查找一下,找打之后copy到/usr/lib64/目录下

find / -name  libseccomp.so.2
### 解决方案概述 当遇到 `OCI runtime create failed` 和 `runc create failed` 的错误时,通常是因为容器运行环境配置不正确或者依赖项缺失引起的。以下是针对该问题的具体分析和解决方案。 --- #### 1. **确认 NVIDIA 驱动程序安装** 确保主机已经正确安装了支持 GPU 的 NVIDIA 驱动程序,并验证驱动版本是否兼容 Docker 和操作系统的要求[^1]。可以执行以下命令来检查: ```bash nvidia-smi ``` 如果此命令返回正常的结果,则说明 NVIDIA 驱动已成功安装并可用;否则需要重新安装适合当前系统的驱动版本。 --- #### 2. **检查 Docker 版本与插件设置** 确保使用的 Docker 版本是最新的稳定版之一,并且启用了必要的功能模块。对于 GPU 支持而言,需特别关注以下几个方面: - 是否安装了 `nvidia-docker2` 插件; - `/etc/docker/daemon.json` 文件中是否有正确的配置条目用于启用 GPU 功能。 典型配置如下所示[^1]: ```json { "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } }, "default-runtime": "nvidia" } ``` 完成修改之后重启 Docker 服务以应用更改: ```bash sudo systemctl restart docker ``` --- #### 3. **调整 Container Runtime 属性** 有时某些遗留容器可能保留着无效的运行时参数定义,这会干扰新创建的任务实例化过程。可以通过清理这些异常记录来解决问题[^2]。具体操作步骤包括但不限于: - 列举所有存在的容器及其状态信息:`docker ps -a` - 找到目标对象对应的存储路径(一般位于 `/var/lib/docker/containers/<CONTAINER_ID>/`) - 编辑其中名为 `hostconfig.json` 的文件,删除关于 `"Runtime"` 字段下的非法值(比如多余的 `"oci"`) - 再次启动 Docker 守护进程使改动生效 --- #### 4. **排查 Hook 初始化失败原因** 从日志提示来看,“error running hook #0” 表明存在初始化阶段未能顺利完成的情况。这种现象往往同 SELinux 或 AppArmor 等安全策略有关联。尝试临时关闭它们以便进一步诊断根本所在: ```bash setenforce 0 # 对于SELinux sudo aa-disable /usr/sbin/dockerd # 针对AppArmor ``` 另外也要留意是否存在资源争用状况——例如多个应用程序试图同时访问相同的硬件设备而导致超时等问题发生。 --- #### 5. **持久化 GPU 资源分配** 为了实现更稳定的长期部署效果,在构建镜像过程中加入显卡绑定声明不失为一种有效手段。下面给出一段示范脚本供参考: ```Dockerfile FROM nvidia/cuda:11.7-base-ubuntu20.04 RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ python3-pip \ build-essential \ git && \ rm -rf /var/lib/apt/lists/* CMD ["sleep", "infinity"] ``` 通过指定基础映象(`nvidia/cuda`)自动继承相关特性的同时简化后续维护工作量。 最后记得按照实际需求定制启动选项,例如限定最大线程数或是预加载特定库集合等等。 --- ### 总结 综上所述,解决此类复杂的技术难题应当遵循由表及里的原则逐步推进:先核实基本软硬件条件满足度再深入探究潜在冲突源头直至彻底消除障碍为止。希望以上指导能够帮助您顺利排除故障恢复正常业务运作! ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值