web-dev-qa-db-fra.com

Docker 1.3 ne parvient pas à démarrer sur RHEL6.5

J'avais déjà suivi https://docs.docker.com/installation/rhel/ pour installer docker sur rhel6.5. Cela fonctionnait jusqu’à aujourd’hui, jusqu’à ce que j’ai décidé d’exécuter "yum update" et de passer à docker1.3.

Maintenant, /etc/init.d/docker start échoue.

-bash-4.1$ Sudo /etc/init.d/docker status
           docker dead but pid file exists

Contenu de/var/log/docker:

-bash-4.1$ more /var/log/docker 
\nSun Nov 30 23:29:14 IST 2014\n
 2014/11/30 23:29:14 docker daemon: 1.3.1 c78088f/1.3.1; execdriver: native; grap
 hdriver: 
 [dd907331] +job serveapi(unix:///var/run/docker.sock)
 [info] WARNING: You are running linux kernel version 2.6.32-431.el6.x86_64, whic
 h might be unstable running docker. Please upgrade your kernel to 3.8.0.
 /usr/bin/docker: relocation error: /usr/bin/docker: symbol dm_task_get_info_with
 _deferred_remove, version Base not defined in file libdevmapper.so.1.02 with lin
 k time reference

Je n'ai pas encore d'option pour passer à rhel7 et j'ai déjà essayé de 

  • yum downgrade - mais la liste yum ne répertorie plus l'ancienne version
  • compiler l’ancienne source de docker, mais docker ne vous permet plus de construire un binaire sans le binaire de docker installé :(
21
robbin

/ usr/bin/docker: erreur de déplacement:/usr/bin/docker: symbole dm_task_get_info_with_deferred_remove, version de base non définie dans le fichier libdevmapper.so.1.02 avec référence de temps de lien

Je suis tombé sur cette question au travail cette semaine (également sur RHEL6.5). Je pense que lib-device-mapper que vous avez n’exporte pas le symbole ("Base") dont Docker a besoin. J'ai résolu ce problème en mettant à niveau lib-device-mapper vers la version 1.02.90.

Vous devrez peut-être activer le référentiel public_ol6_latest pour obtenir ce package.

Sudo yum-config-manager --enable public_ol6_latest

Et puis installez le paquet:

Sudo yum install device-mapper-event-libs

45
Todd

TL; DR: Dans mon cas, j’avais besoin de mettre à jour le paquet device-mapper-libs sous CentOS/RHEL 6.5. Détails ci-dessous.

$ yum update -y device-mapper-libs

Sous RHEL/CentOS 6.5, la même erreur se produisait lorsque j'essayais de lancer le démon docker:

$ docker -d
INFO[0000] +job serveapi(unix:///var/run/docker.sock)
INFO[0000] WARNING: You are running linux kernel version 2.6.32-431.el6.x86_64, which might be unstable running docker. Please upgrade your kernel to 3.8.0.
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
docker: relocation error: docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference

Lors du dépannage, je suis tombé sur la discussion docker.io: docker ne s’exécute pas après la mise à jour pour Debian.

Pour référence, voici mon environnement avant le "correctif":

$ uname -a
Linux build1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/redhat-release
CentOS release 6.5 (Final)

Avant la mise à niveau, device-mapper-libs était à la version 1.02.79. Dans le rapport de bogue Debian lié ci-dessus, il a été souligné que Docker 1.4.1 (qui est une version différente de celle sur laquelle l’affiche originale a été interrogée) est compilé avec une version plus récente de device-mapper-libs (libdevmapper 2:1.02.90-1, notez que le nom du paquet dans Debian est différent).

$ yum info device-mapper-libs
Installed Packages
Name        : device-mapper-libs
Arch        : x86_64
Version     : 1.02.79
Release     : 8.el6
<...snip...>

La mise à jour de device-mapper-libs a résolu le problème:

$ yum update -y device-mapper-libs

# Yep, the package was updated to the latest version (1.02.90)
$ rpm -qi device-mapper-libs
Name        : device-mapper-libs           Relocations: (not relocatable)
Version     : 1.02.90                           Vendor: CentOS
Release     : 2.el6_6.1                     Build Date: Wed 26 Nov 2014 
<...snip...>

Une fois la mise à jour terminée, le démon docker démarrera correctement:

$ # docker -d
INFO[0000] +job serveapi(unix:///var/run/docker.sock)
INFO[0000] WARNING: You are running linux kernel version 2.6.32-431.el6.x86_64, which might be unstable running docker. Please upgrade your kernel to 3.8.0.
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
INFO[0000] +job init_networkdriver()
INFO[0000] -job init_networkdriver() = OK (0)
INFO[0000] Loading containers: start.

INFO[0000] Loading containers: done.
INFO[0000] docker daemon: 1.4.1 5bc2ff8/1.4.1; execdriver: native-0.2; graphdriver: devicemapper
INFO[0000] +job acceptconnections()
INFO[0000] -job acceptconnections() = OK (0)

J'espère que cela t'aides!

17
Michael G. Noll

J'ai rencontré le même problème lors de l'installation de Docker 1.5 sur CentOS 7 sur Vagrant/VBox. La mise à niveau de DevMapper a résolu le problème. Pour cela, lancez la commande:

$ Sudo yum update device-mapper
4
pcx

J'ai rencontré ce problème après l'installation de docker 1.6 dans centOS7 et je ne peux pas exécuter docker avec succès. Après 

miam installer lvm2

cela fonctionne pour moi dans centOS7 :)

Espérons que cela sera utile pour les personnes qui ont le même problème dans centOS7.

0
Jane