338 字
2 分钟
Containerd Task Fails to Start Container: ctr: failed to create shim task: OCI runtime create failed
Error message:
ctr: failed to create shim task: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v2.task/i4t/nginx/log.json: no such file or directory): runc did not terminate successfully: exit status 127: unknownThe commands we ran were:
[root@web01 ~]# ctr -n i4t c lsCONTAINER IMAGE RUNTIMEnginx docker.io/library/nginx:alpine io.containerd.runc.v2[root@web01 ~]# ctr -n i4t task start -d nginxctr: failed to create shim task: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v2.task/i4t/nginx/log.json: no such file or directory): runc did not terminate successfully: exit status 127: unknownThe root cause is an abnormal runc, which requires reinstalling its dependency.
Solution:
This indicates that the libseccomp package is missing or incompatible. Note that on CentOS 7 the version installed via yum is 2.3, which does not meet the requirements of the latest containerd. You need to install version 2.4 or higher.
# Uninstall the old version[i4t@web01 ~]# rpm -qa | grep libseccomplibseccomp-devel-2.3.1-4.el7.x86_64libseccomp-2.3.1-4.el7.x86_64[i4t@web01 ~]# rpm -e libseccomp-devel-2.3.1-4.el7.x86_64 --nodeps[i4t@web01 ~]# rpm -e libseccomp-2.3.1-4.el7.x86_64 --nodeps# Download a package newer than 2.4[i4t@web01 ~]# wget http://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/libseccomp-2.5.1-1.el8.x86_64.rpm# Install it[i4t@web01 ~]# rpm -ivh libseccomp-2.5.1-1.el8.x86_64.rpmwarning: libseccomp-2.5.1-1.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEYPreparing... ################################# [100%]Updating / installing... 1:libseccomp-2.5.1-1.el8 ################################# [100%]# Check the current version[root@web01 ~]# rpm -qa | grep libseccomplibseccomp-2.5.1-1.el8.x86_64Run runc again:
[root@web01 ~]# runcNAME: runc - Open Container Initiative runtimerunc is a command line client for running applications packaged according tothe Open Container Initiative (OCI) format and is a compliant implementation of theOpen Container Initiative specification.runc integrates well with existing process supervisors to provide a productioncontainer runtime environment for applications. It can be used with yourexisting process monitoring tools and the container will be spawned as adirect child of the process supervisor.Containers are configured using bundles. A bundle for a container is a directorythat includes a specification file named "config.json" and a root filesystem.The root filesystem contains the contents of the container.To start a new instance of a container:.... Containerd Task Fails to Start Container: ctr: failed to create shim task: OCI runtime create failed
https://catcat.blog/en/containerd-task-start-ctr-failed-to-create-shim-task-oci.html