docker-runc not installed on system
Asked Answered
K

6

21

I recently updated my Centos 7 based machine. And since, i fail to start any of my dockers. Does someone have some experience with this issue and if yes how did you fix it ? Thanks for your valuable help. Below the error log

docker run -it centos6_labs_ompi161_devtools3 /usr/bin/docker-current: Error response from daemon: shim error: docker-runc not installed on system.

Kell answered 13/3, 2017 at 0:10 Comment(1)
See github.com/docker/docker/issues/26022Tidal
K
33

It seems that the docker rpm misses some symbolic link in the end. As it was pointed to me, this issue was raised on:

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

and this can be easily fixed by:

cd /usr/libexec/docker/
sudo ln -s docker-runc-current docker-runc 
Kell answered 14/3, 2017 at 18:38 Comment(4)
Above solution doesn't solve my issue, i am using centos 7.0Consulate
Don't forget to include /usr/libexec/docker in the path when starting dockerd. (The link solution works for me using centos 7.4)Blaney
Above solution did work for me on centos 7 but forcefully killed docker and started. Kill Docker ps axf | grep docker | grep -v grep | awk '{print "kill -9 " $1}' | sudo sh start docker sudo systemctl start dockerFredette
This works for my case. my docker version 1.13.1 and Centos 7Empty
C
37

In reference to the top answer, introduce the sym link in /usr/bin to enable it in global path

sudo ln -s /usr/libexec/docker/docker-runc-current /usr/bin/docker-runc
Ceolaceorl answered 16/3, 2018 at 10:51 Comment(4)
This is really a comment, not an answer. Once you have sufficient reputation you will be able to comment on any post; instead, provide answers that don't require clarification from the asker.Salami
Works on CentOS7Corrigible
This answer worked for me, where NabilG's did not. On centos 7, with Docker 1.12.6. Thank you!Tortosa
Worked for me on redhat7Helpless
K
33

It seems that the docker rpm misses some symbolic link in the end. As it was pointed to me, this issue was raised on:

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

and this can be easily fixed by:

cd /usr/libexec/docker/
sudo ln -s docker-runc-current docker-runc 
Kell answered 14/3, 2017 at 18:38 Comment(4)
Above solution doesn't solve my issue, i am using centos 7.0Consulate
Don't forget to include /usr/libexec/docker in the path when starting dockerd. (The link solution works for me using centos 7.4)Blaney
Above solution did work for me on centos 7 but forcefully killed docker and started. Kill Docker ps axf | grep docker | grep -v grep | awk '{print "kill -9 " $1}' | sudo sh start docker sudo systemctl start dockerFredette
This works for my case. my docker version 1.13.1 and Centos 7Empty
M
4

I know that this is a rather old question; however, this occured when I updated from CentOS - Extras docker to Docker's own docker-ce rpm. The service file located at /usr/lib/systemd/system/docker.service had the following lines hardcoded into the ExecStart line:

--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 \

By default, the docker-ce package does not come with the same set of lines and the file paths are different. After upgrading I added the following and the containers respected my start commands with no data lost as expected:

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

Hope this helps someone else!

Maje answered 17/1, 2018 at 14:8 Comment(0)
M
4

Please try this

Failure shim error: docker-runc not installed on system

cd /usr/libexec/docker/
cp docker-runc-current /usr/bin/docker-runc
Martines answered 10/5, 2019 at 9:48 Comment(0)
D
1

Not CentOS related but for Slackware I had to install a separate runc package.

Diacetylmorphine answered 26/1, 2022 at 13:1 Comment(0)
I
0

I tried Nabil Ghodbane's method, but it didn't work. Thanks to billabongrob's answer, I found a way to fix this problem. You can try this Docker config file:

$ 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"
}

or use this config in your command line .

Isochronal answered 8/3, 2018 at 1:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.