一次使用Dockerfile构建tomcat镜像时遇到的Linux内核问题

2023-05-16

当前版本

[root@zyrox-test alpine_images]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@zyrox-test alpine_images]# uname -a
Linux zyrox-test 5.5.11-1.el7.elrepo.x86_64 #1 SMP Fri Mar 20 10:34:37 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux

使用dockerfile构建tomcat镜像
在这里插入图片描述

报错

rm: can’t remove ‘/usr/local/tomcat/webapps/docs’: Directory not empty

进行一波搜索引擎信息检索,发现GitHub似乎有人讨论过一样的问题:

https://github.com/docker-library/busybox/issues/77

在这里插入图片描述

尝试升级内核解决该问题

先下载内核rpm安装包:
https://elrepo.org/linux/kernel/el7/x86_64/RPMS/
我选择目前比较新且是稳定版本的一个内核版本如下

kernel-ml-5.18.15-1.el7.elrepo.x86_64.rpm

(附:内核版本号说明)

> major.minor.patch-build.desc
> 
> major : 主版本号,有结构变化才变更 
> minor : 次版本号,新增功能时才发生变化,一般奇数表示测试版,偶数表示生产版 
> patch : 补丁包数或次版本的修改次数 
> build : 编译(或构建)的次数,每次编译可能对少量程序做优化或修改,但一般没有大的(可控的)功能变化。
> desc : 当前版本的特殊信息,其信息由编译时指定,具有较大的随意性,有如下的标识是常用的:
> rc(或r),表示发行候选版本(release candidate),rc后的数字表示该正式版本的第几个候选版本,多数情况下,各候选版本之间数字越大越接近正式版。
> smp,表示对称多处理器(Symmetric MultiProcessing)。
> pp,在Red Hat Linux中常用来表示测试版本(pre-patch)。 
> EL,在Red Hat Linux中用来表示企业版Linux(Enterprise Linux)。 
> mm,表示专门用来测试新的技术或新功能的版本。 
> fc,在Red Hat Linux中表示Fedora Core。 
> 
> 例如:用命令uname -a查看内核版本号
> 在CentOS下如:
> Linux localhost 2.6.32-642.15.1.el6.x86_64 #1 SMP Fri Feb 24 14:31:22
> UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 说明如下:
> 
> 第一个数字:2, 主版本号 
> 第二个数字:6, 次版本号,当前为稳定版本 
> 第三个数字:32, 修订版本号
> el6:表示内核是 RedHat / CentOS 系列6.x发行版专用内核
> x86_64:表示64位架构

升级内核操作

[root@zyrox-test opt]# rpm -ivh kernel-ml-5.18.15-1.el7.elrepo.x86_64.rpm
warning: kernel-ml-5.18.15-1.el7.elrepo.x86_64.rpm: Header V4 DSA/SHA256 Signature, key ID baadae52: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:kernel-ml-5.18.15-1.el7.elrepo   ################################# [100%]
Failed to install module kvm_ivshmem

Broadcast message from systemd-journald@zyrox-test (Thu 2022-08-04 20:39:13 CST):

dracut[58955]: Failed to install module kvm_ivshmem


Message from syslogd@zyrox-test at Aug  4 20:39:13 ...
 dracut:Failed to install module kvm_ivshmem

#此主机是虚拟机,可能是因为安装了FusionCompute的vmtools,Huawei官方文档指出此错误不影响操作系统补丁的安装,可忽略
[root@zyrox-test opt]# grub2-set-default 0
[root@zyrox-test opt]# reboot

完成升级内核

[root@zyrox-test ~]# uname -a
Linux zyrox-test 5.18.15-1.el7.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jul 28 09:26:15 EDT 2022 x86_64 x86_64 x86_64 GNU/Linux

[root@zyrox-test ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.18.15-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (5.5.11-1.el7.elrepo.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-42b4c12b21384358853c44fea27eb8e8) 7 (Core)
[root@zyrox-test ~]# grub2-editenv list
saved_entry=0

使用同样的Dockerfile再次构建镜像,成功完成,问题解决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一次使用Dockerfile构建tomcat镜像时遇到的Linux内核问题 的相关文章

  • 简单的状态机图

    一 什么是状态机 xff1f 做产品的时候 xff0c 我们总能遇到一些比较复杂的逻辑问题 比如状态的转换 xff0c 字段状态的确认 xff0c 权限的控制 xff0c 状态的对应 而普通的流程图 xff0c 或时序图 xff0c 更侧重
  • js-对象转基本类型

    起因是收到朋友发的一道题 xff0c 如下 xff1a span class token comment 请在问号处填写你的答案 使下方等式成立 span span class token keyword let span a span c
  • 局域网内wakeonlan远程唤醒其它计算机

    背景 xff1a 需要管理多台计算机 xff0c 所有计算机在一个局域网内 xff0c 并且有的安装了Windows系统 xff0c 有的安装了Linux系统 我们想远程关闭和启动所有计算机 关闭计算机直接通过网络发生操作系统关机命令即可实
  • D3D中的三种Buffer

    在D3D中 针对视窗有三种Buffer 它们分别是 Color Buffer Depth Buffer和Stencil Buffer Color Buffer在D3D中又称为Render Target 意思是最后着色的目标Buffer 就是
  • 创建镜像(更新与构建镜像)

    创建镜像 有时从Docker镜像仓库中下载的镜像不能满足我们的要求 xff0c 此时可以基于这个镜像 xff08 基础镜像 xff09 封装一个自 己的镜像 两种方式 xff1a 更新镜像 xff1a 使用docker commit命令构建
  • (十)CMake链接已有的动态库

    使用一个已经存在的动态库 xff0c 需要用到CMake中两个命令 xff0c 分别是 xff1a link directoriestarget link libraries 下面先介绍以下两个命令的格式及其含义 xff0c 最后是一个使用
  • ROS入门21讲笔记(四)自定义话题消息类型和使用

    除了ROS内置消息外 xff0c 我们还能自定义消息 这一次我们不再与海龟较劲 xff0c 而是自定义一个订阅消息类型 xff0c 让订阅者和发布者通过这个结构进行数据通信 一 如何自定义话题消息 xff1f 话题消息是以 msg结尾的文件
  • ROS入门21讲笔记(七)自定义消息消息类型和使用

    这一节主要是学习如何自定义一个服务类型并使用它 一 如何自定义服务消息 xff1f 服务数据是以 srv结尾的文件 xff0c 是一个用于描述ROS服务信息简单文本文件 xff0c 用于生成不同语言消息的源代码 srv文件存放在packag
  • ROS入门21讲笔记(十二)常用可视化工具

    一 QT类可视化工具 1 1 rqt console rqt console 为显示和过滤ROS信息提供了一个GUI插件 1 2 rqt plot rqt plot使用不同的绘图后端提供数值可视化功能 1 3 rqt Image view
  • (二)CMake 使用头文件

    一 include directories 该命令用于增加一个编译头文件 其基本语法是 xff1a include directories span class token punctuation span span class token
  • cargo 宏展开遇到的问题

    最近学习rust xff0c 看到宏展开命令 span class token comment 单独文件 span rustc Z unstable options pretty span class token operator 61 s
  • 工程师笔记|常见的嵌入式软件工程师面试题

    Q xff1a 什么是ISR xff1f A xff1a ISR 是指中断服务程序 这些是存储在特定内存地址的函数 xff0c 当发生某种类型的中断时会调用这些函数 Cortex M 处理器系列具有管理中断执行的 NVIC Q xff1a
  • 计算机中的速率、带宽、时延、利用率解读

    计算机网络的性能一般是指它的几个重要的性能指标 但除了这些重要的性能指标外 xff0c 还有一些非性能特征 xff08 nonperformance characteristics xff09 也对计算机网络的性能有很大的影响 那么 xff
  • 手把手教你写链表,小学生看了都说好~

    摘要 xff1a 明明我们在之前已经接触了数组 xff0c 感到数组已经是万能的数据存储位置了 但是 xff0c 如果我们一直在使用比较复杂的数据 xff08 也就是比较多的数据时 xff09 xff0c 肯定会感到很反感 因为对于数组这种
  • 15-JavaScript高级程序设计-创建对象

    一 创建对象 创建单个对象 xff1a Object构造函数 new Object 对象字面量 xff08 参见8 Object amp Array xff09 创建多个对象 xff1a 以下7种方式 1 工厂模式 span class t
  • FreeRtos源码分析之启动任务调度vTaskStartScheduler(二)

    一 概述 FreeRtos在创建任务之后 xff0c 需要启动任务调度器才能使任务正常有序的运行 任务调度器的开启依赖于底层硬件 xff0c 对于CortexM3内核而言 xff0c 任务调度器需要用到中断和滴答定时器 FreeRtos在对
  • FreeRtos源码分析之任务状态管理(三)

    一 概述 FreeRtos的每一个任务都有一个对应的优先级 xff0c 较高优先级的任务具有优先运行的权利 xff0c 当高优先级的任务调用系统的延时函数或者需要阻塞等待某些信号时 xff0c 会让出CPU的使用权 xff0c 从而使低优先
  • FreeRtos源码分析之任务切换原理(四)

    一 CortexM3中断优先级 CortexM3支持多达240个外部中断和16个内部中断 xff0c 每一个中断都对应一个中断都对应一个优先级寄存器 每一个优先级寄存器占用8位 xff0c STM32采用其中的高四位来表示优先级 xff0c
  • ubuntu切换python版本

    一 概述 在ubuntu环境下进行嵌入式开发 xff0c 我们在进行不同的项目开发时 xff0c 可能会遇到python环境不统一的情况 这时 xff0c 我们可以通过update alternatives来方便更新ubuntu下的pyth
  • 本地Windows远程连接阿里云服务器图形界面(使用vnc viewer)

    文章目录 前言Motivation of writing1 场景说明2 给阿里云服务器安装图形界面3 给服务器配置VNC Server4 让服务器放行5901端口5 本地windows配置vnc viewer总结 标题 xff1a 本地Wi

随机推荐