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

手动升级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

可以开心的玩耍了 ~