1. 程式人生 > >centos6.5安裝docker及遇到的錯誤

centos6.5安裝docker及遇到的錯誤

     Docker容器最早受到RHEL完善的支援是從最近的CentOS 7.0開始的,官方說明是隻能運行於64位架構平臺,核心版本為2.6.32-431及以上(即 >= CentOS 6.5,執行docker時實際提示3.10.0及以上)。 需要注意的是CentOS 6.5與7.0的安裝是有一點點不同的,CentOS 6.x上Docker的安裝包叫docker-io,並且來源於Fedora epel庫,這個倉庫維護了大量的沒有包含在發行版中的軟體,所以先要安裝EPEL,而CentOS 7.x的Docker直接包含在官方映象源的Extras倉庫。

    由於核心版本太低,會導致docker非常卡,所以建議升級至最新版本核心。

一、核心升級

    1.檢查內容版本

        $ uname -r

          2.6.32-431.el6.x86_64

        # 結果:2.6.32-431.el6.x86_64,不滿足上文的需求,故此需要升級核心。

    2. 匯入公鑰數字證書

        $ rpm --import 

https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

        #:如果顯示報錯:

        curl: (35) SSL connect error

        error: https://www.elrepo.org/RPM-GPG-KEY-elrepo.org: import read failed(2).

        執行 yum update nss,然後在匯入證書就可以了

    3. 安裝ELRepo

        rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm

    4. 升級kernel

        這裡需要注意的是,在 ELRepo 中有兩個核心選項,一個是 kernel-lt(長期支援版本),一個是 kernel-ml(主線最新版本),採用長期支援版本(kernel-lt),更穩定一些

        # kernel-lt 

        $ yum --enablerepo=elrepo-kernel install kernel-lt -y 

        or 

        # kernel-ml 

        $ yum --enablerepo=elrepo-kernel install kernel-ml -y

    5. 安裝完成,需要修改grub

        根據安裝好以後的核心位置,修改 default 的值,一般是修改為0,因為 default 從 0 開始,一般新安裝的核心在第一個位置,所以設定default=0

        $ vi /etc/grub.conf

        default=0

    6. 重啟

        $ reboot

        重啟完成,檢視核心版本

        $ uname -r

        4.4.168-1.el6.elrepo.x86_64

二、安裝docker

    1. 安裝epel

       EPEL 是什麼?

       EPEL (Extra Packages for Enterprise Linux,企業版Linux的額外軟體包) 是Fedora小組維護的一個軟體倉庫專案,為RHEL/CentOS提供他們預設不提供的軟體包。這個源相容RHEL及像CentOS和Scientific Linux這樣的衍生版本。

       我們可以很容易地通過yum命令從EPEL源上獲取上萬個在CentOS自帶源上沒有的軟體。EPEL提供的軟體包大多基於其對應的Fedora軟體包,不會與企業版Linux發行版本的軟體發生衝突或替換其檔案。

       $ yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

       安裝完之後檢查是否成功

       $ yum repolist

    2. 安裝docker

       $ yum install -y docker-io

    3. 啟動docker

       以守護程序啟動

       $ docker -d

       #如果顯示報錯:

       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

       更新libdevmapper

       $ yum update -y device-mapper-libs

       然後重新啟動,如果不報錯說明安裝成功

    4.以服務在後臺啟動

       $ service docker start

       通過命令檢視docker執行狀態

       $ service docker status

       日誌檢視

       $ tail -f /var/log/messages

ps:最後得說一句,如果可以用centos7最好就不要用6,因為centos6只能安裝到1.7.1的版本,很多功能是缺失的,後面真正使用docker的時候很折騰

centos7安裝docker:https://blog.csdn.net/qq_24384579/article/details/85617478