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 ? Tha
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 .
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!
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
Please try this
Failure shim error: docker-runc not installed on system
cd /usr/libexec/docker/
cp docker-runc-current /usr/bin/docker-runc
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