CentOS 6.x 上搭建docker

Docker是一个能够把开发应用程序自动部署到容器的开源引擎。它由Docker公司的团队编写,基于Apache 2.0开源协议授权。它提供了一个简单、轻量的建模方式,使开发生命周期更高效快速,鼓励了面向服务的架构设计。

一、前提条件

1、内核

Docker 运行环境对内核要求比较高,一般建议直接在Ubuntu这样的平台上运行。但作为一个容器标准,Docker也支持其他如 CentOS,Mac OS X,Windows等其他平台。
目前Docker支持以下Red Hat和Red Hat系发行版:(不支持32位)

  • (RHEL|CentOS) 6.5及以上版本(64位)
  • Fedora 19及以上版本(64位)

在运行于这些系统时,需要 内核版本 >= 3.8 ,因为这些内核包含了运行Docker的一些特定修改。
查看内核版本:

# uname -r
2.6.32-431.el6.x86_64

注意:3.8 > 内核版本 >= 2.6.32-431 这些内核版本虽然也能支持Docker运行,但是支持得不好,仍会在运行时出现很多bug。推荐 内核版本 >= 3.8 。

2、检查Device Mapper

Docker默认使用AUFS作为存储驱动,但是AUFS并没有被包括在Linux的主线内核中。CentOS中可以使用Device Mapper作为存储驱动,这是在2.6.9内核版本引入的新功能。
需要先确认是否启用该功能:

# ls -l /sys/class/misc/device-mapper
lrwxrwxrwx 1 root root 0 8月  31 17:33 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper

如果没有检测到Device Mapper,需要安装其软件包:

# yum install device-mapper -y

然后重新加载 dm_mod 内核模块:

# modprobe dm_mod

二、升级内核版本

1、查看当前内核版本

# cat /etc/redhat-release
CentOS release 6.5 (Final)
# uname -r
2.6.32-431.el6.x86_64

CentOS 6.5 系统默认的内核版本是 2.6.32-431.el6.x86_64,不符合Docker的安装条件,需要升级内核版本。

2、升级内核版本至3.10.0

在yum的 ELRepo 源中,有 mainline(3.13.x)、long-term(3.10.x)这2个内核版本,考虑到long-term更稳定,会长期更新,所以选择这个版本。

导入 Public key

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

安装ELRepo源

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

安装kernel-lt 或 kernel-ml(任选一个)

# kernel-lt,内核版本:3.10.x
# yum --enablerepo=elrepo-kernel install kernel-lt -y
# 或者kernel-ml,内核版本:3.13.x
# yum --enablerepo=elrepo-kernel install kernel-ml -y

编辑 grub.conf 文件,修改 Grub 引导顺序

# cat /etc/grub.conf
device (hd0) HD(1,800,64000,ab0fd74d-ecf9-42ff-8c69-0fa5d3af4fd2)
default=1
timeout=5
splashimage=(hd0,1)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.107-1.el6.elrepo.x86_64)
    root (hd0,1)
    kernel /vmlinuz-3.10.107-1.el6.elrepo.x86_64 ro root=/dev/mapper/vg_localhost-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_localhost/lv_swap crashkernel=128M LANG=zh_CN.UTF-8 rd_LVM_LV=vg_localhost/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    initrd /initramfs-3.10.107-1.el6.elrepo.x86_64.img
title CentOS (2.6.32-431.el6.x86_64)
    root (hd0,1)
    kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_localhost-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_localhost/lv_swap crashkernel=128M LANG=zh_CN.UTF-8 rd_LVM_LV=vg_localhost/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    initrd /initramfs-2.6.32-431.el6.x86_64.img

确认刚安装的内核在哪个位置,然后设置default值(从0开始)。一般新安装的内核会在第一个位置,所以设置 default=0。

重启服务器,查看内核版本

# reboot
# uname -r
3.10.107-1.el6.elrepo.x86_64

三、安装Docker

对于CentOS 6.5,Docker可以在 EPEL 源中找到,安装 EPEL 源

# rpm -Uvh http://www.gtlib.gatech.edu/pub/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

删除CentOS 6.5默认自带的Docker

# yum remove docker -y

安装docker-io的RPM包

# yum install docker-io -y

查看Docker版本

# 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服务

# service docker start
标签:CentosDocker 发布于:2019-11-09 21:16:55