2014-11-30 11 views
21

Tôi đã thực hiện trước đó theo số https://docs.docker.com/installation/rhel/ để cài đặt docker trên rhel6.5. Điều này được sử dụng để làm việc cho đến ngày hôm nay, cho đến khi tôi quyết định chạy "cập nhật yum" và nâng cấp lên docker1.3.Docker 1.3 không khởi động được trên RHEL6.5

Hiện tại, /etc/init.d/docker start failed.

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

Nội dung thư mục/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 

Tôi không có một tùy chọn để nâng cấp lên rhel7 nêu ra, và đã cố gắng để

  • yum hạ cấp - nhưng danh sách yum không liệt kê phiên bản cũ hơn nữa
  • biên dịch nguồn docker cũ hơn, nhưng docker không cho phép bạn tạo một tệp nhị phân nữa mà không cài đặt nhị phân docker :(

Trả lời

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

Tôi đã tham gia công việc này trong tuần này (cũng trên RHEL6.5). Tôi tin rằng lib-device-mapper mà bạn không xuất khẩu một biểu tượng ("Base") mà Docker cần. Tôi đã giải quyết vấn đề này bằng cách nâng cấp lib-device-mapper lên phiên bản 1.02.90.

Bạn có thể phải kích hoạt gói séc public_ol6_latest để nhận gói này.

sudo yum-config-manager --enable public_ol6_latest

Và sau đó cài đặt gói:

sudo yum install device-mapper-event-libs

+0

Cảm ơn Todd, tôi đã chú ý đến cuộc thảo luận trên blog docker - https://forums.docker.com/t/upgrading-docker-to-current-version-on-centos/340/9. Tôi không thấy phiên bản mới hơn của trình ánh xạ thiết bị trên yum. Bất kỳ con trỏ nào để cài đặt/nâng cấp nó? $ danh sách yum --showduplicates device-mapper Gói cài đặt thiết bị mapper.x86_64 1.02.79-8.el6 @ Anaconda-RedHatEnterpriseLinux-201311111358.x86_64/6,5 – robbin

+0

@Robbin - Chỉnh sửa câu trả lời của tôi để cung cấp thêm hướng dẫn chính xác trên nơi để tìm thấy điều này. – Todd

+2

Cảm ơn bạn lần nữa @Todd, tôi đã làm như sau để nâng cấp thiết bị-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 cập nhật thiết bị-mapper – robbin

17

TL; DR: Trong trường hợp của tôi, tôi cần thiết để nâng cấp gói device-mapper-libs trên CentOS/RHEL 6.5. Chi tiết bên dưới.

$ yum update -y device-mapper-libs 

On RHEL/CentOS 6.5, tôi nhận được lỗi tương tự khi cố gắng chạy daemon 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 

Trong khi xử lý sự cố Tôi đã xem qua các cuộc thảo luận docker.io: docker does't run after upgrade dành cho Debian.

Để tham khảo ở đây là môi trường của tôi trước khi "sửa chữa":

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

Trước khi nâng cấp device-mapper-libs đang ở phiên bản 1.02.79. Trong báo cáo lỗi Debian được liên kết ở trên, nó đã được chỉ ra rằng Docker 1.4.1 (là một phiên bản khác so với những gì các poster ban đầu được hỏi về) được biên dịch với một phiên bản mới hơn của device-mapper-libs (libdevmapper 2:1.02.90-1, lưu ý rằng tên gói trong Debian là khác nhau).

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

Đang cập nhật device-mapper-libs cố định vấn đề:

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

Sau khi cập nhật xong, daemon Docker sẽ bắt đầu thành công:

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

Hope this helps!

4

Tôi gặp phải vấn đề tương tự khi cài đặt Docker 1.5 trên CentOS 7 trên Vagrant/VBox. Việc nâng cấp DevMapper đã khắc phục được sự cố. Để thực hiện điều này, hãy chạy lệnh:

$ sudo yum update device-mapper 
+0

Tôi đã gặp sự cố tương tự. Gói Docker PHẢI yêu cầu phiên bản dev-mapper phù hợp. Vì vậy, tôi sẽ cố gắng tạo ra một vấn đề cho điều đó. –

+1

Tôi đã tạo sự cố https://github.com/docker/docker/issues/12108 –

0

Tôi gặp sự cố này sau khi cài đặt docker 1.6 trong centOS7 và không thể chạy docker thành công. Sau

yum install lvm2

nó làm việc cho tôi trong centOS7 :)

Hope này hữu ích cho những người có cùng một vấn đề trong centOS7.

+0

Câu hỏi có liên quan đến RHEL6.5, chứ không phải 7. – AlexG

Các vấn đề liên quan