docker安装升级linux内核(2.6.32->3.12.17)

时间:2021-03-12 20:06:05

1.内核升级环境准备

#查看已经安装的和未安装的软件包组,来判断我们是否安装了相应的开发环境和开发库;
yum grouplist
#一般是安装这两个软件包组,这样做会确定你拥有编译时所需的一切工具
yum groupinstall "Development Tools"
#你必须这样才能让 make *config 这个指令正确地执行
yum install ncurses-devel
#如果你没有 X 环境,这一条可以不用
yum install qt-devel
#创建 CentOS-6 内核时需要它们
yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel

下载 内核包

wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.17.tar.xz

解包,进行内核源码目录
  [root@centos ~]# tar -vxf linux-3.12.17.tar.xz
  
2.开始升级内核:

cd /usr/src/linux-3.12.17
 #复制原内核配置
 cp /boot/config-2.6.32-573.el6.x86_64 .config
 vim .config
 /*将如下内容 追加入.config 并保存
    CONFIG_NF_NAT_IPV4=y
    CONFIG_IP_NF_TARGET_MASQUERADE=y
    CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
    CONFIG_MEMCG_SWAP=y
    CONFIG_MEMCG_SWAP_ENABLED=y
    CONFIG_AUFS_FS=y
    CONFIG_DM_THIN_PROVISIONING=y
    CONFIG_OVERLAY_FS=y
    CONFIG_CGROUP_PERF=y
    CONFIG_CFS_BANDWIDTH=y
    HYPERVISOR_GUEST=y
    CONFIG_VMWARE_BALLOON=m
 */
 #编辑内核配置,开启内核CGROUP支持
 make menuconfig
 #选择General setup-->Control Group support->Memory Resource Controller for Control Groups选中
 #自动整理.config
 sh -c 'yes "" | make oldconfig'
 #编译并安装内核(j8代表8个线程同时编译,请根据你的机器情况设置)
 make -j8 bzImage && make -j8 modules && make -j8 modules_install && make install
 vim /etc/grub.conf
 修改default=0保存。即选择从你新编译的内核启动linux。
 #重启
 reboot

#注意:重新编译内核请运行
 cd /usr/src/linux-3.12.17
 make mrproper
 make clean

#.如果升级成功后,可以删除源码目录
[root@centos ~]# rm -rf /usr/local/src/linux-3.12.17

#.删除原来的内核 

#查看当前有什么内核版本

[root@centos ~]# rpm -q kernel

显示以下版本

kernel-2.6.32-431.el6.x86_64
kernel-2.6.32-431.11.2.el6.x86_64

#删除原内核

[root@centos ~]# yum remove kernel-2.6.32-431.el6.x86_64 #移除此版本的内核,同时启动菜单也不再会出现此内核
[root@centos ~]# yum remove kernel-2.6.32-431.11.2.el6.x86_64

删除后,查看启动菜单会发现已经少了此内核

[root@centos ~]# cat /boot/grub/menu.lst

安装docker

1. yum install docker-engine

2.service docker start

如果启动失败 报如下错误

Starting cgconfig service: Error: cannot mount cpuacct to /cgroup/cpuacct: Device or resource busy
/sbin/cgconfigparser; error loading /etc/cgconfig.conf: Cgroup mounting failed
Failed to parse /etc/cgconfig.conf or /etc/cgconfig.d      [失败]
Starting docker:                                       [确定]

检查cgconfig 是否启动
/etc/init.d/cgconfig status

未启动时

修改vim /etc/cgconfig.conf(注释掉memory)
#    memory    = /cgroup/memory
重启  /etc/init.d/cgconfig restart

重新启动docker