解决容器启动后无法编辑文件的问题

前段时间拉取了个MySQL的容器节点,但是拉起之后发现居然编辑不了MySQL的配置文件,这是我的启动命令

1
docker run -itd -p 3310:3306  -e MYSQL_ROOT_PASSWORD=12345678 --name slave2  f5f171121fa3 bash

下面总结下解决方法:

  1. 编辑docker file直接从根本上解决问题(还没试过)
  2. 安装需要命令的rpm包(不推荐,依赖特别多)
  3. 将需要编辑的文件在宿主机上编辑,然后再传到容器中(不推荐,特麻烦)
  4. 直接宿主机的挂载目录中编辑对应的容器文件(还行,比较容易)
  5. 我还有个想法,俗话所一切皆文件,直接将需要命令的相关文件从宿主机copy到容器中即可(还没试过)

当然上面的方法比较另辟迄今,当我们遇到没有一个命令时首先想到的应该是安装,但是有的小伙伴也可能又和我遇到了同样的问题,比如,一顿操作猛如虎….

首先启动一个容器后看下启动容器的os信息

1
cat /etc/os-release

可以看到这个MySQL是oracle封装的你使用其他os命令肯定不行,但是我们可能对oracle linux server的命令不是很熟悉,那么该怎么办呢,下面介绍一个比yum,dnf还要轻量级的软件包管理器—microdnf

microdnf 是一个轻量级的包管理器,它是 DNF 的一个分支,专为使用在容器环境和嵌入式系统中而设计。由于容器和嵌入式系统通常有资源限制,包括有限的磁盘空间和内存,microdnf 被优化以减少其内存占用和执行速度。

以下是 microdnf 的一些关键特点:

  • 轻量化microdnf 旨在减少内存和磁盘的使用,使其适合在资源受限的环境中运行。
  • 兼容性:它与 DNF 高度兼容,支持大部分 DNF 命令和功能,但去掉了一些在容器中不必要的功能。
  • 简单性microdnf 提供了一个简单的方法来安装、更新和删除软件包。
  • 依赖管理:尽管是轻量级,microdnf 仍然处理依赖关系,确保安装的软件包所依赖的包也得到安装。
  • 配置文件microdnf 使用 /etc/microdnf.conf/etc/dnf/microdnf.conf 作为其主要配置文件。
  • 仓库管理:它支持配置软件仓库(repositories),允许用户添加、移除或修改仓库的配置。
  • 包管理操作microdnf 支持基本的包管理操作,如安装、更新、查询和删除软件包。
  • 静默操作:它支持静默模式,可以在不提示用户输入的情况下自动执行操作。
  • 安全性microdnf 可以配置为自动更新安全相关的包,帮助维护容器的安全性。
  • 使用场景:它适用于容器化应用、嵌入式系统和任何需要轻量级包管理器的场景。
  • 与 DNF 的区别microdnf 没有 DNF 的所有特性,比如管理插件、复杂的仓库元数据处理等。

命令示例
_ - 安装包:microdnf install <package_name>
__- 更新包:microdnf update <package_name>
__- 查询包:microdnf info <package_name>
__- 删除包:microdnf remove <package_name>
_- 列出已安装包:microdnf list --installed

microdnf 是一个实用的工具,尤其适用于需要轻量级包管理的场合。然而,它可能不适合那些需要 DNF 所有高级功能的环境。在使用 microdnf 时,您应该根据您的具体需求和环境来评估其适用性。

用microdnf安装vim

1
microdnf -y install vim

学识浅薄,疏漏难免,祈望高贤不吝赐教。