本次测试主机为云主机,默认内核参数如下

Linux vm 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 31 16:04:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

关于内核
    Linux 内核分两种:官方内核(通常是内核开发人员用)和各大 Linux 发行版内核(一般用户常用)。
    在使用 Docker 时,发现其对 Linux 内核版本的最低要求是 3.10(这也刚好是 CentOS 7.2 的内核版本),但是在
    这个版本上有部分功能无法实现。目前 Linux 内核已经发布到 4.X(可以随时在 Linux 内核官网 查看当前版本),
    为了使用最新版本的内核,只好在安装 CentOS 7 后对内核进行升级。
    Prepatch:Prepatch 或 “RC” 内核是主要的内核预发行版本,主要针对内核开发人员和 Linux 爱好者。必须从源代
    码进行编译,并且通常包含必须在可以放入稳定版本之前进行测试的新功能。Prepatch 内核由 Linus Torvalds 维护
    和发布。
    Mainline:Mainline 主线树由 Linus Torvalds 维护。这个版本的内核会引入所有新功能。新的 Mainline 内核每 
    2-3 个月发布一次。
    Stable:每个主线内核被发布后,即被认为是“stable”。任何对 stable 内核的 BUG 修复都会从 Mainline 主线树
    中回溯并由指定的 stable 内核维护人员使用。 在下一个主线内核可用之前,通常只有几个 BUG 修复内核版本除
    非它被指定为“longterm maintenance kernel(长期维护内核)”。stable 内核更新按需发布,通常每月 2-3 次。
    Longterm:通常会提供几个“longterm maintenance”内核版本,用于修复旧版内核的 BUG。这些内核只会修复重大 
    BUG,并且不会频繁发布版本。

升级内核
    先更新仓库

yum -y update
     启用ELRepo仓库
         rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
         rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
     查看可用的系统内核包
         yum --disablerepo="*" --enablerepo="elrepo-kernel" list available


        可看到本次能升级到4.4.176和5.0.2两个内核版本
    安装新内核
        yum --enablerepo=elrepo-kernel install kernel-lt
        --enablerepo 选项开启CentOS系统上的指定仓库。默认开启的是elrepo,这里用elrepo-kernel替换。
    设置 grub2
        内核安装好后,需要设置为默认启动选项并重启后才会生效
    查看系统上的所有可以内核
        sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
            0 : CentOS Linux (4.4.176-1.el7.elrepo.x86_64) 7 (Core)
            1 : CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core)
            2 : CentOS Linux (3.10.0-327.13.1.el7.x86_64) 7 (Core)
            3 : CentOS Linux (0-rescue-ed703d1292182569f36c01ee63d5c153) 7 (Core)
    设置grub2
        grub2-set-default 0
            0来自上一步查到的内核代号,想将哪一个内核设为默认启动内核则指定哪一个代号
    生成 grub 配置文件并重启
        grub2-mkconfig -o /boot/grub2/grub.cfg
        reboot