创建容器失败报错


[root@izbp152ke14timzud0du15z compose]# docker run -d ubuntu:demo
03ea601ae9ac8132f41ddfd9113d55492223eb12a7fe57851689306c829ecce0
docker: Error response from daemon: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v2.task/moby/03ea601ae9ac8132f41ddfd9113d55492223eb12a7fe57851689306c829ecce0/log.json: no such file or directory): runc did not terminate successfully: unknown.

查看docker服务状态

[root@izbp152ke14timzud0du15z compose]# 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 Tue 2022-04-19 07:53:17 CST; 14min ago
     Docs: https://docs.docker.com
 Main PID: 9411 (dockerd)
    Tasks: 139
   Memory: 262.1M
   CGroup: /system.slice/docker.service
           └─9411 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Apr 19 08:07:18 izbp152ke14timzud0du15z dockerd[9411]: time="2022-04-19T08:07:18.719969980+08:00" level=warning msg="failed to retrieve runc version: exit status 127"
Apr 19 08:07:18 izbp152ke14timzud0du15z dockerd[9411]: time="2022-04-19T08:07:18.724307409+08:00" level=warning msg="failed to retrieve runc version: exit status 127"
Apr 19 08:07:18 izbp152ke14timzud0du15z dockerd[9411]: time="2022-04-19T08:07:18.729515514+08:00" level=warning msg="failed to retrieve runc version: exit status 127"
Apr 19 08:07:18 izbp152ke14timzud0du15z dockerd[9411]: time="2022-04-19T08:07:18.732048784+08:00" level=warning msg="failed to retrieve runc version: exit status 127"
Apr 19 08:07:18 izbp152ke14timzud0du15z dockerd[9411]: time="2022-04-19T08:07:18.737637287+08:00" level=warning msg="failed to retrieve runc version: exit status 127"

报错日志:

level=warning msg="failed to retrieve runc version: exit status 127"

查看docker version信息, 也没看到runc

[root@izbp152ke14timzud0du15z compose]# docker version
Client: Docker Engine - Community
 Version:           20.10.12
 API version:       1.41
 Go version:        go1.16.12
 Git commit:        e91ed57
 Built:             Mon Dec 13 11:45:41 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true
Server: Docker Engine - Community
 Engine:
  Version:          20.10.12
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.12
  Git commit:       459d0df
  Built:            Mon Dec 13 11:44:05 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.12
  GitCommit:        7b11cfaabd73bb80907dd23182b9347b4245eb5d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

我为什么会碰到此问题?

我通过whereis 查找runc,发现两个位置存在此文件,但是通过md5sum比对,发现两个文件的md5sum值不一样

[root@izbp152ke14timzud0du15z ~]# whereis runc
runc: /usr/bin/runc  /usr/local/sbin/runc 
[root@izbp152ke14timzud0du15z ~]# md5sum /usr/bin/runc
3c363f2ba5a276132d55a42f8998d883  /usr/bin/runc
[root@izbp152ke14timzud0du15z ~]# md5sum /usr/local/sbin/runc
5eff008a1fb5afe8c2deca6a62e92d16  /usr/local/sbin/runc

把能用的runc文件覆盖掉不能用的runc文件,能用的runc执行有输出信息

# runc --version
runc version 1.0.2
commit: v1.0.2-0-g52b36a2
spec: 1.0.2-dev
go: go1.16.10
libseccomp: 2.3.1


https://github.com/opencontainers/runc/releases runc下载地址


正常了

[root@izbp152ke14timzud0du15z sbin]# docker version
Client: Docker Engine - Community
 Version:           20.10.12
 API version:       1.41
 Go version:        go1.16.12
 Git commit:        e91ed57
 Built:             Mon Dec 13 11:45:41 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true
Server: Docker Engine - Community
 Engine:
  Version:          20.10.14
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       87a90dc
  Built:            Thu Mar 24 01:48:24 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.6.1
  GitCommit:        10f428dac7cec44c864e1b830a4623af27a9fc70
 runc:
  Version:          1.0.2
  GitCommit:        v1.0.2-0-g52b36a2
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
踩坑+排雷新版IDEA2021.1创建配置Javaweb项目并部署在Tomcat容器,完整详细
踩坑+排雷新版IDEA2021.1创建配置Javaweb项目并部署在Tomcat容器,完整详细
Docker容器持久化和Docker容器非持久化、创建卷、移除卷、绑定卷
容器持久化,docker创建卷,查看卷,查看卷详情,rm删除卷,prune删除卷,通过prune和rm删除卷的区别,挂载卷,等相关操作
Docker基础 docker创建centos7容器然后安装配置Nginx,并在浏览器访问
docker 在容器里下载配置nginx,并可在浏览器上访问的方法, 并将容器转为镜像,或将容器转为文件,再将文件转为镜像的两种方式,创建容器时绑定端口的方法,
docker基础 docker创建centos容器,然后在centos容器里下载MySQL并本地连接MySQL
docker基础,使用docker创建一个centos容器,并在该容器下载安装MySQL,并设定端口号,然后在本地连接MySQL
【云原生】Docker之创建并进入mysql容器
本文主要讲解的是创建mysql的容器,大家都知道,在外面进入mysql都很容易,“mysql -u用户名 -p密码”就可以,但是是容器的mysql就没那么好进入了,首先还要拉取镜像,创建容器,在进入容器,然后才可以进入mysql;其实也没有那么难,而且比在宿主机装一个mysql简便了很多,也省去了很多时间,比如,宿主机上mysql还要编译,容器就不用,但是最难的一点就是如何去创建容器呢,他和普通的创建容器是不一样的,所以,今天给大家讲讲创建mysql容易,并进入、创建库和表;
【云原生 | 05】Docker中容器的创建与启停
首先Docker会检查本地是否存在基础镜像,如果本地还没有该镜像的话,那么Docker就会连接官方维护的Docker Hub Registry,查看Docker Hub中是否有该镜像。Docker一旦找到该镜像,就会下载该镜像并将其保存到本地宿主机中。 随后,Docker在文件系统内部用这个镜像创建了一个新容器。该容器拥有自己的网络、IP地址,以及一个用来和宿主机进行通信的桥接网络接口。..................