2014-11-30 2 views
21

Я ранее следовал https://docs.docker.com/installation/rhel/, чтобы установить докер на rhel6.5. Это работало до сегодняшнего дня, пока я не решил запустить «yum update» и обновился до docker1.3.Docker 1.3 не запускается на RHEL6.5

Теперь запуск /etc/init.d/docker завершается с ошибкой.

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

Содержание/вар/Журнал/грузчик:

-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 

У меня нет возможности обновить до rhel7 еще, и уже пыталось

  • ня понижения - но список yum больше не перечисляет более старую версию.
  • скомпилировать старый источник докеров, но докер не позволяет вам строить двоичный файл без установленного двоичного файла docker :(

ответ

45

/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 link time reference

Я столкнулся с этим на работе на этой неделе (также на RHEL6.5). Я полагаю, что у вашего устройства lib-device-mapper нет экспорта символа («Base»), который требуется Docker. Я решил это, обновив lib-device-mapper до версии 1.02.90.

Возможно, вам придется включить репо public_ol6_latest, чтобы получить этот пакет.

sudo yum-config-manager --enable public_ol6_latest

А затем установить пакет:

sudo yum install device-mapper-event-libs

+0

Спасибо Тодд, я заметил дискуссию на блоге докера - https://forums.docker.com/t/upgrading-docker-to-current-version-on-centos/340/9. Я не вижу более новую версию device-mapper на yum. Любые указатели на установку/обновление? $ списка ня --showduplicates устройства картограф Установленных пакеты устройство mapper.x86_64 1.02.79-8.el6 @ анаконда-RedHatEnterpriseLinux-201311111358.x86_64/6,5 – robbin

+0

@Robbin - ред моего ответа, чтобы обеспечить более точные указания на где это можно найти. – Todd

+2

Еще раз спасибо @Todd, я сделал следующее, чтобы обновить device-mapper. 1. cd /etc/yum.repos.d 2. wget http://public-yum.oracle.com/public-yum-ol6.repo 3. wget http://public-yum.oracle. com/RPM-GPG-KEY-oracle-ol6 -O/etc/pki/rpm-gpg/RPM-GPG-KEY-oracle 4. yum update device-mapper – robbin

17

TL; DR: В моем случае мне нужно обновить пакет device-mapper-libs на CentOS/RHEL 6.5. Подробности ниже.

$ yum update -y device-mapper-libs 

На RHEL/CentOS 6.5, я получил ту же ошибку при попытке запустить демон 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 

Хотя устранение неполадок я наткнулся на обсуждение docker.io: docker does't run after upgrade для Debian.

Для справки здесь было мое окружение перед "исправить":

$ 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) 

Перед обновлением device-mapper-libs был в версии 1.02.79. В отчете об ошибке Debian, указанном выше, было указано, что Docker 1.4.1 (который отличается от того, о чем спрашивал оригинальный плакат) компилируется в отношении более новой версии device-mapper-libs (libdevmapper 2:1.02.90-1), обратите внимание, что имя пакета в Debian другой).

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

Обновление device-mapper-libs исправлена ​​проблема:

$ 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...> 

После завершения обновления, докер демон начнет успешно:

$ # 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) 

Надеется, что это помогает!

4

Я столкнулся с такой же проблемой при установке Docker 1.5 на CentOS 7 на Vagrant/VBox. Устранение проблемы с DevMapper. Для этого выполните команду:

$ sudo yum update device-mapper 
+0

Я столкнулся с той же проблемой. Докер-пакет ДОЛЖЕН требовать правильной версии dev-mapper. Поэтому я попытаюсь создать проблему для этого. –

+1

Я создал проблему https://github.com/docker/docker/issues/12108 –

0

Я встретил этот вопрос после установки докер 1.6 в centOS7 и не может работать докер успешно. После

yum install lvm2

это работает для меня в centOS7 :)

Надеется, что это полезно для людей, которые имели такое же проблему в centOS7.

+0

Вопрос был связан с RHEL6.5, а не с 7. – AlexG

Смежные вопросы