本文最后更新于 2024-02-10,文章内容可能已经过时。

手动升级CentOS 7.9内核的正确方式

1.背景

不知道大家有没有遇到过这样的问题,在使用docker创建vlan网络时,会提示“Error response from daemon: kernel version failed to meet the minimum ipvlan kernel requirement of 4.2, found 3.10.0”,需要的内核为4.2,但找到的内核为3.10.0。

img

看一下系统的内核版本,使用以下命令:

uname -a

可以看到当前的内核确实为3.10.0.

img

查看一下CentOS的版本,使用以下命令:

cat /etc/redhat-release

可以看到是最新的7.9版本。

img

2.错误尝试

按照一贯的思路,那不就是update解决的事嘛!手指一划,敲下一条命令(生产环境下慎用!):

yum -y update

没有效果!采用upgrade升级(生产环境下慎用!)

yum -y upgrade 

好吧,没有用,内核没有变化。

img

3.正确尝试

先导入一个公钥。

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

安装一下CentOS 7.x的ELRepo包。

yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
# CentOS 8则采用下面的命令
# yum install -y https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

然后依次执行下面的命令,等待进度条走完,下载升级:

yum --enablerepo=elrepo-kernel install kernel-ml -y &&
sed -i s/saved/0/g /etc/default/grub &&
grub2-mkconfig -o /boot/grub2/grub.cfg 

img

重启系统:

reboot

再次查看CentOS的内核版本,发现已经把内核升级成了5.16.12:

uname -a

img

可以开心的玩耍了~