最近,在虚拟机中安装docker成功之后,尝试运行docker run hello-world时出现以下错误:

 $ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Status: Downloaded newer image for hello-world:latest
docker: Error response from daemon: OCI runtime create failed: container_linux.go:: starting container process caused "process_linux.go:293: copying bootstrap data to pipe caused \"write init-p: broken pipe\"": unknown.

查资料得知,这是CentOS内核系统与docker版本不匹配所导致的问题,下面介绍一下如何升级系统内核。

升级系统版本
首先,查看当前系统版本

 $ uname -r
3.10.-.el7.x86_64

然后进行升级

 $ yum update
# 之后重启虚拟机
$ reboot
# 查看系统内核
$ uname -r
3.10.-.el7.x86_64
# 内核并未升级,升级的其实是系统版本
# 因为 CentOS 为了安全和稳定并不会把系统内核升级到最新的版本,所以 yum update 命令只会升级系统版本和更新软件
$ cat /etc/redhat-release
CentOS Linux release 7.6. (Core)

升级内核版本
升级内核

$ 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

上述命令为启用elrepo仓库,我们可以使用以下命令列出可用的系统内核相关包:

 $ yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

之后,就可以安装最新的稳定内核:

 $ yum --enablerepo=elrepo-kernel install kernel-ml

重启机器,并选择最新安装的内核(第一个)

进入系统之后,查看内核版本uname -r

设置GRUB默认的内核版本
启动系统时,系统默认选择之前的版本,所以我们需要设置一下GRUB

 $ vi /etc/default/grub

 GRUB_TIMEOUT=
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

重新创建内核配置

 $ grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.0.-.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.0.-.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.-.el7.x86_64
Found initrd image: /boot/initramfs-3.10.-.el7.x86_64.img
Found linux image: /boot/vmlinuz--rescue-16053a12b3234d688858493442d3b11e
Found initrd image: /boot/initramfs--rescue-16053a12b3234d688858493442d3b11e.img
done

重启,不进行选择内核操作,验证更新后的内核为默认内核

 $ uname -r
5.0.-.el7.elrepo.x86_64

删除旧版本内核(可选)
查看当前全部内核

 $ rpm -qa | grep kernel
kernel-tools-3.10.-.el7.x86_64
kernel-ml-5.0.-.el7.elrepo.x86_64
kernel-tools-libs-3.10.-.el7.x86_64
kernel-3.10.-.el7.x86_64

使用yum remove删除旧版本内核

 yum remove kernel-tools-3.10.-.el7.x86_64 kernel-tools-libs-3.10.-.el7.x86_64 kernel-3.10.-.el7.x86_64

重启之后,发现没有其他内核可以选择。

CentOS_7升级系统内核的更多相关文章

  1. centos6升级系统内核

    1.升级系统内核查看内核版本: uname -r 2.6.32-573.8.1.el6.x86_64 导入elrepo的key: rpm --import https://www.elrepo.org ...

  2. centos6安装docker,先升级系统内核

    安装docker,其他的源可能导致你的内核和docker的版本不一致,需要将系统内核升级至3.x 查看当前系统版本 cat /etc/issue 查看当前内核版本 uname -r #uname -a ...

  3. centos7升级系统内核

      1)升级 方法一: rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.or ...

  4. CentOS 6.9安装docker之前升级系统内核版本

    问题描述:安装docker,官方文档要求Linux kernel至少3.8以上,且docker只能运行在64位的系统中(这个很重要,搞了个i386的系统升级了半天没成功) 升级步骤: 1.因位安装服务 ...

  5. CentOS6下用yum升级系统内核版本至最新

    首先当你决定升级内核时,要想清楚为什么升级内核,因为升级内核会带来很多麻烦.所以这种事情能避免就避免 导入 Public Key rpm --import https://www.elrepo.org ...

  6. CentOS7升级系统内核至4.4.xx版本

    CentOS7.x系统自带的3.10.x内核存在一些Bugs,导致运行的Docker.kubernetes不稳定,建议升级内核,容器使用的坑会少很多 下载内核源 rpm -Uvh http://www ...

  7. Centos 下面升级系统内核(转)

    1.导入public key     1 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2.安装ELRepo到CentOS 6. ...

  8. linux 升级系统内核linux-4.10版本

    http://blog.csdn.net/steven_liwen/article/details/68487241

  9. centos7.5升级系统内核版本

    1.yum update curl nss 2.yum install wget 3.rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.or ...

随机推荐

  1. arcgis api 3.x for js 入门开发系列七图层控制(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  2. 推荐一款好用的office转换PDF工具

    北京博信施科技有限公司是一家专业从事数据格式转换.数据处理领域研发软件产品和解决方案实施的技术型公司.在当今信息时代,PDF文档格式是在Internet上进行电子文档发行和数字化信息传播的理想文档格式 ...

  3. Dynamics AX 2012 R2 电子邮件广播错误 0x80040213

    Dynamics AX 2012 R2 电子邮件广播错误 0x80040213 今天Reinhard在新环境做邮件广播测试时,发现无法发送邮件,并报以下错误: 类"CDO.Message&q ...

  4. iOS ----------NSDate 、CFAbsoluteTimeGetCurrent、CACurrentMediaTime 的区别

    框架层: NSDate 属于Foundation CFAbsoluteTimeGetCurrent() 属于 CoreFoundatio CACurrentMediaTime() 属于 QuartzC ...

  5. RelativeLayout设置wrap_content无效

    尊重劳动成果,转载请标明出处:http://www.cnblogs.com/tangZH/p/8419053.html 在做项目的过程中,遇到了一个奇怪的现象,我设置RelativeLayout为的宽 ...

  6. Kotlin入门(31)JSON字符串的解析

    json是App进行网络通信最常见的数据交互格式,Android也自带了json格式的处理工具包org.json,该工具包主要提供了JSONObject(json对象)与JSONArray(json数 ...

  7. Anaconda安装sasl,thrift,thrift-sasl,PyHive连接Hive

    一.安装sasl 安装失败,前往:https://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl下载对应自己python版本的sasl 本地安装: 二.安装thrif ...

  8. EOS开发实战

    EOS开发实战   在上一篇文章<EOS开发入门>中,我们为大家介绍了EOS的节点启动和合约部署和调用等入门知识.本次我们来实现一个复杂的例子,可以为其取一个高大上的名字-悬赏任务管理系统 ...

  9. Chinese word segment based on character representation learning 论文笔记

    论文名和编号 摘要/引言 相关背景和工作 论文方法/模型 实验(数据集)及 分析(一些具体数据) 未来工作/不足 是否有源码 问题 原因 解决思路 优势 基于表示学习的中文分词 编号:1001-908 ...

  10. JavaScript作用域链的理解

    前言 作用域是JavaScript一个很重要的概念,想要学好JavaScript就需要理解javascript作用域和作用域链的工作原理.这篇文章对JavaScript作用域链和作用域链做一个简单的介 ...