203  
查询码: 00000524
docker启动命令报failed to create shim task: OCI runtime create failed
2026年03月16日 发布 ,于 2026年03月16日 编辑

问题报错

安装好SDK,导入base镜像后,使用docker命令启动容器,命令如下:

docker run -it -v /usr/src:/usr/src -v /lib/modules:/lib/modules -v /dev:/dev
--net=host --privileged --cap-add=ALL --pid=host
--name=dev1 vllm:1.0 /bin/bash


报错:

docker : Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed : runc create failed: unable to start container process: error during container init: open /dev/pts/ptmx: no such file or diretory: unknown


原因分析:

这个错误的根本原因是把/dev 整个挂载进容器,但宿主机的/dev/pts 是一个独立的 devpts 文件系统,bind mount /dev 不会自动带上它的子挂载点,导致容器内 /dev/pts/ptmx 不存在,而 -it 需要 PTY 就报错了。

注意:

有的环境执行不会报错,原因是那个宿主机的 /dev 下本身就有完整的 devpts 挂载,bind mount /dev 时 /dev/pts 也被一起带进去了。

是否报错取决于宿主机内核和 systemd 的配置:

  • 有些发行版(比如较新的 Ubuntu/Debian)/dev/pts 作为独立 devpts 挂载,bind mount /dev 不会递归带上子挂载
  • 另一些环境(比如某些 CentOS、或者已经在容器/VM 里的环境)/dev 的挂载结构不同,/dev/pts 可能是以 bind 方式存在的,就能被一起带进去


解决方法

去掉 -it 改用 -id(后台运行),就绕开了 PTY 的问题。

docker run -id -v /usr/src:/usr/src -v /lib/modules:/lib/modules -v /dev:/dev
--net=host --privileged --cap-add=ALL --pid=host
--name=dev1 vllm:1.0 /bin/bash

笔记



  目录
    天数智芯知识库系统 -V 5.2.7 -wcp