docker-runc не установлен в системе

Я недавно обновил свою машину на базе Centos 7. И с тех пор я не могу запустить ни одного из моих докеров. Есть ли у кого-то опыт с этой проблемой, и если да, то как вы ее исправили? Спасибо за вашу ценную помощь. Ниже журнала ошибок

запуск докера -it centos6_labs_ompi161_devtools3 /usr/bin/docker-current: Ответ об ошибке от демона: ошибка shim: docker-runc не установлен в системе.

Ответ 1

Кажется, что docker rpm в конце концов пропускает какую-то символическую ссылку. Как мне указывалось, этот вопрос поднимался:

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

и это можно легко устранить:

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

Ответ 2

В связи с верхним ответом введите символическую ссылку в /usr/bin, чтобы включить ее в глобальный путь

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

Ответ 3

Я знаю, что это довольно старый вопрос; однако это произошло, когда я обновил док-станцию CentOS - Extras до Docker самостоятельно. Файл службы, расположенный в /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

Я попробовал метод Набила Годбейна, но он не сработал. Благодаря ответу 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"
}

или используйте этот конфиг в командной строке.

Ответ 5

Пожалуйста, попробуйте это

Ошибка ошибки shim: docker-runc не установлен в системе

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