docker-runc 未安装在系统上

docker-runc not installed on system

我最近更新了基于 Centos 7 的机器。从那以后,我无法启动任何 dockers。有人对此问题有经验吗?如果有,您是如何解决的? 感谢您的宝贵帮助。 错误日志下方

docker 运行 -它centos6_labs_ompi161_devtools3 /usr/bin/docker-current:来自守护程序的错误响应:shim 错误:docker-运行c 未安装在系统上。

似乎 docker rpm 最后遗漏了一些符号 link。 正如有人向我指出的那样,这个问题是在以下时间提出的:

https://access.redhat.com/solutions/2876431

这可以通过以下方式轻松解决:

cd /usr/libexec/docker/
sudo ln -s docker-runc-current docker-runc 

我知道这是一个比较老的问题;然而,这发生在我从 CentOS - Extras docker 更新到 Docker 自己的 docker-ce rpm 时。位于 /usr/lib/systemd/system/docker.service 的服务文件将以下行硬编码到 ExecStart 行:

--add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
--default-runtime=docker-runc \
--exec-opt native.cgroupdriver=systemd \
--userland-proxy-path=/usr/libexec/docker/docker-proxy-current \

默认情况下,docker-ce包自带的行不一样,文件路径也不一样。升级后,我添加了以下内容,并且容器遵守了我的启动命令,没有像预期的那样丢失数据:

 --add-runtime docker-runc=/usr/bin/docker-runc \
    --default-runtime=docker-runc \
    --exec-opt native.cgroupdriver=systemd \
    --userland-proxy-path=/usr/bin/docker-proxy

希望这对其他人有帮助!

我试过 Nabil Ghodbane 的方法,但没有用。 感谢 billabongrob 的回答,我找到了解决这个问题的方法。 您可以试试这个 Docker 配置文件:

$ cat /etc/docker/daemon.json
{
    "log-level":"warn",
    "hosts": ["unix:///var/run/docker.sock","tcp://0.0.0.0:2375"],
    "runtimes": {
        "docker-runc": {
            "path": "/usr/libexec/docker/docker-runc-current"
        }
    },
    "add-runtime": "docker-runc=/usr/libexec/docker/docker-runc-current",
    "default-runtime": "docker-runc"
}

或在您的命令行中使用此配置。

参考楼上的答案,在/usr/bin中引入符号[=​​14=],在全局路径中启用

sudo ln -s /usr/libexec/docker/docker-runc-current /usr/bin/docker-runc

请试试这个

失败 shim 错误:docker-runc 未安装在系统上

cd /usr/libexec/docker/
cp docker-runc-current /usr/bin/docker-runc

与 CentOS 无关,但对于 Slackware,我必须安装一个单独的 runc 软件包。