【问题标题】:docker-runc not installed on systemdocker-runc 未安装在系统上
【发布时间】: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.

【问题讨论】:

标签: docker centos7 yum


【解决方案1】:

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

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

【讨论】:

【解决方案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 软件包。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多