問題
根據(jù)CentOS安裝docker指南,啟動(dòng)hello-world時(shí)報(bào)錯(cuò),提示信息中提到了OCI runtime
,根本原因是 runc did not terminate successfully
[root@localhost composetest]# sudo docker run hello-world
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v2.task/moby/4a7cc9e9d0d66c8db7f9cd68ffa2631c54d3e3dab4c408fd2af564b1cd496536/log.json: no such file or directory): runc did not terminate successfully: exit status 127: unknown.
ERRO[0000] error waiting for container:
解決
參考【錯(cuò)誤解決】docker找不到runc:failed to create shim: OCI runtime create failed: unable to retrieve OCI runtime,這個(gè)問題跟runc
有關(guān),查看docker版本的確沒有runc信息
[root@localhost composetest]# docker version
Client: Docker Engine - Community
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:53:10 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.2
API version: 1.43 (minimum version 1.12)
Go version: go1.20.4
Git commit: 659604f
Built: Thu May 25 21:52:10 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
//如果正常,這里應(yīng)該有 runc的信息
docker-init:
Version: 0.19.0
GitCommit: de40ad0
查看docker狀態(tài),提示沒有runc
[root@localhost composetest]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2023-06-29 16:24:21 CST; 5min ago
Docs: https://docs.docker.com
Main PID: 22144 (dockerd)
Tasks: 12
Memory: 38.4M
CGroup: /system.slice/docker.service
└─22144 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
6月 29 16:24:21 localhost.localdomain dockerd[22144]: time="2023-06-29T16:24:21.863821695+08:00" level=warning
//這里提示沒有runc version
msg="failed to retrieve runc version: exit>
6月 29 16:24:21 localhost.localdomain dockerd[22144]: time="2023-06-29T16:24:21.879643673+08:00" level=info msg="Docker daemon" commit=659604f graphdrive>
6月 29 16:24:21 localhost.localdomain dockerd[22144]: time="2023-06-29T16:24:21.879688811+08:00" level=info msg="Daemon has completed initialization"
6月 29 16:24:21 localhost.localdomain dockerd[22144]: time="2023-06-29T16:24:21.903813923+08:00" level=info msg="API listen on /run/docker.sock"
6月 29 16:24:21 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
6月 29 16:25:17 localhost.localdomain dockerd[22144]: time="2023-06-29T16:25:17.603433056+08:00" level=error msg="stream copy error: reading from a close>
6月 29 16:25:17 localhost.localdomain dockerd[22144]: time="2023-06-29T16:25:17.603501074+08:00" level=error msg="stream copy error: reading from a close>
6月 29 16:26:31 localhost.localdomain dockerd[22144]: time="2023-06-29T16:26:31.575391981+08:00" level=error msg="stream copy error: reading from a close>
6月 29 16:26:31 localhost.localdomain dockerd[22144]: time="2023-06-29T16:26:31.575508418+08:00" level=error msg="stream copy error: reading from a close>
6月 29 16:29:33 localhost.localdomain dockerd[22144]: time="2023-06-29T16:29:33.001615925+08:00"
//這里提示沒有runc version
level=warning msg="failed to retrieve runc version: exit>
最終查到可能是libseccomp
版本過低引起的,看一下當(dāng)前版本
[root@localhost composetest]# rpm -qa | grep libseccomp
libseccomp-2.3.3-3.el8.x86_64
升級
yum update libseccomp
升級后再查看docker 版本已經(jīng)有runc
了。文章來源:http://www.zghlxwxcb.cn/news/detail-632165.html
[root@localhost composetest]# docker version
Client: Docker Engine - Community
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:53:10 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.2
API version: 1.43 (minimum version 1.12)
Go version: go1.20.4
Git commit: 659604f
Built: Thu May 25 21:52:10 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
//有runc版本了
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
總結(jié)
解決過程中遇到了OCI
、runc
等名詞,根據(jù)Docker,containerd,CRI-O和runc之間的區(qū)別得知,OCI
是open container initiative
,是一套關(guān)于鏡像和容器的規(guī)范,它也提供了實(shí)現(xiàn)就是runc,runc
是用來創(chuàng)建和運(yùn)行容器的。文章來源地址http://www.zghlxwxcb.cn/news/detail-632165.html
到了這里,關(guān)于docker failed to create task for container: failed to create shim task: OCI runtime create failed:的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!