一、升级原因
使用较新版本的docker,内核版本较低可能会出现异常,例如:docker服务正常,iptables策略正常,但突然容器无法访问,重启docker服务之后又恢复正常的问题,所以按照官方要求版本进行升级
二、脚本升级
首先可以确定自己需要升级到什么版本。
关于内核种类:
kernel-ml——kernel-ml 中的ml是英文【 mainline stable 】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。
kernel-lt——kernel-lt 中的lt是英文【 long term support 】的缩写,elrepo-kernel中罗列出来的长期支持版本。ML 与 LT 两种内核类型版本可以共存,但每种类型内核只能存在一个版本。
# yum list --showduplicate kernel*
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos
Loading mirror speeds from cached hostfile
* base: mirrors.huaweicloud.com
* epel: mirrors.bfsu.edu.cn
* extras: mirrors.huaweicloud.com
* updates: mirrors.huaweicloud.com
Installed Packages
kernel.x86_64 3.10.0-1062.el7 @anaconda
kernel.x86_64 3.10.0-1160.81.1.el7 @updates
kernel.x86_64 3.10.0-1160.90.1.el7 @updates
kernel.x86_64 3.10.0-1160.105.1.el7 @updates
kernel-headers.x86_64 3.10.0-1160.105.1.el7 @updates
kernel-lt.x86_64 5.4.256-1.el7.elrepo @elrepo
kernel-lt.x86_64 5.4.264-1.el7.elrepo @elrepo
kernel-lt-devel.x86_64 5.4.256-1.el7.elrepo @elrepo
kernel-lt-devel.x86_64 5.4.264-1.el7.elrepo @elrepo
kernel-tools.x86_64 3.10.0-1160.105.1.el7 @updates
kernel-tools-libs.x86_64 3.10.0-1160.105.1.el7 @updates
Available Packages
kernel.x86_64 3.10.0-1160.el7 base
kernel.x86_64 3.10.0-1160.el7 updates
kernel.x86_64 3.10.0-1160.2.1.el7 updates
kernel.x86_64 3.10.0-1160.2.2.el7 updates
kernel.x86_64 3.10.0-1160.6.1.el7 updates
kernel.x86_64 3.10.0-1160.11.1.el7 updates
kernel.x86_64 3.10.0-1160.15.2.el7 updates
可以根据自己自身需求,修改yum安装的内核版本,升级完reboot即可
CentOS7.9如下:
#!/bin/bash
yum install epel-release -y
echo -e "\n[elrepo]\nname=elrepo\nbaseurl=https://mirrors.aliyun.com/elrepo/archive/kernel/el7/x86_64\ngpgcheck=0\nenabled=1" >> /etc/yum.repos.d/epel.repo
yum clean all
yum makecache
yum install -y kernel-lt-5.4.256 kernel-lt-devel-5.4.256
grub2-set-default 0
CentOS8更新如下:
安装elrepo源
yum install -y https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
启用 ELRepo 源仓库
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
安装最新lt版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum --enablerepo=elrepo-kernel install kernel-lt
设置以新安装的内核启动,0 表示最新安装的内核,设置为 0 表示以新版本内核启动:
grub2-set-default 0
也可以指定内核启动
grubby set default /boot/vmlinuz-5.19.2-1.el8.elrepo.x86_64