docker-runc 未安装在系统上

Posted

技术标签:

【中文标题】docker-runc 未安装在系统上【英文标题】:docker-runc not installed on system 【发布时间】:2017-08-02 22:43:01 【问题描述】:

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

docker run -it centos6_labs_ompi161_devtools3 /usr/bin/docker-current: 来自守护进程的错误响应:shim error: docker-runc not installed on system.

【问题讨论】:

见github.com/docker/docker/issues/26022 【参考方案1】:

参考上面的答案,在 /usr/bin 中引入 sym 链接以在全局路径中启用它

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

【讨论】:

这真的是评论,而不是答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker. 在 CentOS7 上工作 这个答案对我有用,而 NabilG 没有。在 centos 7 上,使用 Docker 1.12.6。谢谢!【参考方案2】:

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

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

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

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

【讨论】:

以上解决方案不能解决我的问题,我使用的是centos 7.0 在启动 dockerd 时不要忘记在路径中包含 /usr/libexec/docker。 (链接解决方案适用于我使用 centos 7.4) 上述解决方案在 centos 7 上对我有用,但强行杀死了 docker 并启动。杀死 Docker ps axf | grep 码头工人 | grep -v grep | awk 'print "kill -9 " $1' | sudo sh start docker sudo systemctl start docker 这适用于我的情况。我的 docker 版本 1.13.1 和 Centos 7【参考方案3】:

我知道这是一个相当古老的问题;但是,当我从 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

希望这对其他人有帮助!

【讨论】:

【参考方案4】:

请试试这个

填充失败错误:系统上未安装 docker-runc

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

【讨论】:

【参考方案5】:

我尝试了 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"

或者在你的命令行中使用这个配置。

【讨论】:

【参考方案6】:

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

【讨论】:

以上是关于docker-runc 未安装在系统上的主要内容,如果未能解决你的问题,请参考以下文章

error: docker-runc not installed on system

docker-runc not installed on system 问题

在未安装docker环境的windows系统上将springboot项目镜像推送到远程主机

npm:后安装未在 docker 中运行

Docker - Docker挂载mysql

docker学习在centos7上安装与启动docker