web-dev-qa-db-fra.com

docker-runc non installé sur le système

J'ai récemment mis à jour ma machine Centos 7. Et depuis, je n'arrive pas à démarrer l'un de mes dockers. Quelqu'un at-il une expérience de ce problème et si oui, comment l’avez-vous corrigé? Merci de votre aide précieuse . Au-dessous du journal des erreurs 

docker run -it centos6_labs_ompi161_devtools3/usr/bin/docker-current: Réponse d'erreur du démon: shim erreur: docker-runc n'est pas installé sur le système.

9
Nabil Ghodbane

Je sais que c'est une question plutôt ancienne; cependant, cela s'est produit lors de la mise à jour de CentOS - Extras docker vers le propre rpm de docker-ce de Docker. Le fichier de service situé dans /usr/lib/systemd/system/docker.service avait les lignes suivantes codées en dur dans la ligne 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 \

Par défaut, le package docker-ce ne contient pas le même ensemble de lignes et les chemins de fichiers sont différents. Après la mise à niveau, j'ai ajouté les éléments suivants et les conteneurs ont respecté mes commandes de démarrage sans perte de données comme prévu:

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

J'espère que ceci aide quelqu'un d'autre!

2
billabongrob

Il semble que le docker rpm manque un lien symbolique à la fin… .. Comme on me l'a signalé, cette question a été soulevée à:

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

et cela peut être facilement résolu par:

cd /usr/libexec/docker/
Sudo ln -s docker-runc-current docker-runc 
19
Nabil Ghodbane

En référence à la réponse principale, introduisez le lien sym dans/usr/bin pour l'activer dans le chemin global

Sudo ln -s /usr/libexec/docker/docker-runc-current /usr/bin/docker-runc
10
John Tee

J'ai essayé la méthode de Nabil Ghodbane, mais cela n'a pas fonctionné ... Grâce à la réponse de billabongrob, j'ai trouvé un moyen de résoudre ce problème ... vous pouvez essayer ce fichier de configuration 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"
}

ou utilisez cette configuration dans votre ligne de commande.

0
Drawn Yang