centos6.5下docker的安装以及常见问题解决方法

2 篇文章 0 订阅
1 篇文章 0 订阅

今天在自己的centos6.5环境下安装了docker,现将安装步骤,以及在安装过程中遇到的问题归纳总结。

安装步骤

第一步:升级Linux内核版本

docker官方文档要求Linux kernel至少在3.8以上,且docker只能运行在64位的系统中。由于RHEL6和CentOS6的内核版本为2.6,因此必须要先升级内核。

1.查看linux当前版本

[root@dk~]# more /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m
[root@dk~]# uname -a
Linux dk.dk 2.6.32-431.el6.x86_64 #1 SMP Fri Feb 10 10:48:08 EST 2017 x86_64 x86_64 x86_64 GNU/Linux

2.升级内核至3.10.28
我使用yum进行安装,我的yum源是ELRepo.org,它是企业版linux RPM 包仓库(an RPM repository for Enterprise Linux packages),其中就有linux内核,在该网站的主页中介绍将它设置为yum源的方法。以下内容是我从该网站上复制过来的。在我写这篇博文之后,这些内容可能会被更新,因此读者最好是在使用的时候直接访问ELRepo.org网站,以便获得最新的内容。


Import the public key:

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

Detailed info on the GPG key used by the ELRepo Project can be found on https://www.elrepo.org/tiki/key (external link)
If you have a system with Secure Boot enabled, please see the SecureBootKey page for more information.

To install ELRepo for RHEL-7, SL-7 or CentOS-7:

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 

To make use of our mirror system, please also install yum-plugin-fastestmirror.

To install ELRepo for RHEL-6, SL-6 or CentOS-6:

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

To make use of our mirror system, please also install yum-plugin-fastestmirror.


接下来我们就可以从ELRepo.org上下载linux内核并进行安装了。

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

或者安装kernel-ml(ml=mainline)

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

注释:
kernel-lt(lt=long-term)
kernel-ml(ml=mainline)

3.关闭selinux:

[root@dk ~]# setenforce 0
[root@dk ~]# sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config

4.重启系统,使之前的安装生效
在重启之前,需要先做这样的一件事情,编辑grub.conf文件,修改Grub引导顺序,简单的说,就是告诉操作系统,使用你刚刚安装的内核。

# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_dk-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.105-1.el6.elrepo.x86_64)
        root (hd0,0)
        kernel /vmlinuz-3.10.105-1.el6.elrepo.x86_64 ro root=/dev/mapper/vg_dk-lv_root rd_NO_LUKS rd_LVM_LV=vg_dk/lv_root rd_NO_MD rd_LVM_LV=vg_dk/lv_swap crashkernel=128M LANG=zh_CN.UTF-8  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-3.10.105-1.el6.elrepo.x86_64.img
title CentOS (2.6.32-431.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_dk-lv_root rd_NO_LUKS rd_LVM_LV=vg_dk/lv_root rd_NO_MD rd_LVM_LV=vg_dk/lv_swap crashkernel=128M LANG=zh_CN.UTF-8  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-431.el6.x86_64.img

修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置)。

接下来就可以重启系统了。

reboot

再次查看系统内核版本,发现内核版本已经更新了。

[root@dk ~]# uname -a
Linux dk.dk 3.10.105-1.el6.elrepo.x86_64 #1 SMP Fri Feb 10 10:48:08 EST 2017 x86_64 x86_64 x86_64 GNU/Linux

至此,已经完成了linux内核的升级。

第二步:安装docker

使用如下命令安装docker。

yum install docker-io  

如果报错提示:No package docker-io available, 说明在你的系统现有的所有yum源都不提供docker的rpm包,所以你需要先安装一个提供docker rpm包的yum源。fedoraproject中有提供docker 的rpm包,按照如下方法安装这个yum源,然后就可以安装docker了。

yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

在安装完成后,使用如下命令启动docker服务。

service docker start

在启动docker服务后,我们可以使用如下命令来查看docker服务是否启动成功了。

[root@dk ~]# docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d/1.7.1
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d/1.7.1
OS/Arch (server): linux/amd64

遇到的问题以及解决方法

我第一次启动docker服务的时候并没有启动成功,而是报错了,我第一次使用docker version查看的时候,输出信息如下:

[root@dk ~]# docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d/1.7.1
OS/Arch (client): linux/amd64
Cannot connect to the Docker daemon. Is 'docker -d' running on this host?

“Cannot connect to the Docker daemon. Is ‘docker -d’ running on this host?”意思是docker守护进程可能没有启动成功。

可以过查看docker的日志/var/log/docker来定位具体的出错,如下是我的出错信息。

[root@dk ~]# cat /var/log/docker 
\n2017年 0514日 星期日 18:10:54 CST\n
time="2017-05-14T18:10:54.898588047+08:00" level=info msg="Listening for HTTP on unix (/var/run/docker.sock)" 
/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

显然错误原因是:

/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

我是参考这篇博文提示的方法解决的:

Docker启动报错

解决方法是升级一下device-mapper-libs,使用如下命令:

yum upgrade device-mapper-libs

然后重启docker服务即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值