第 15 章 系统配置
15.1. 临时运行时重新配置 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以在基础镜像配置中执行动态重新配置。例如,您可以运行 firewall-cmd --permanent 命令,来在重启后实现永久更改。
警告
默认情况下,/etc 目录是持久的。如果您使用工具(如 firewall-cmd --permanent)执行更改,系统上 /etc 的内容可能与容器镜像中描述的内容不同。
在默认配置中,首先在基础镜像中进行更改,对更改进行排队,而无需重启运行的系统,然后同时写,来将内存中的更改只应用到现有系统。
您可以使用绑定挂载将 /etc 目录配置为临时的。在这种情况下,etc 目录是机器的本地 root 文件系统的一部分。例如,如果您使用 Anaconda Kickstart 注入静态 IP 地址,它们会在升级后保留不变。
在升级过程中应用三路合并,每个"部署"都有自己的一份 /etc 副本。
/run目录-
/run目录是一个 API 文件系统,定义为在系统重启时删除。将/run目录用于临时文件。 - 动态重新配置模型
- 在 Pull 模型中,您可以使用 Podman API 包含直接嵌入在基础镜像或联系远程网络服务器进行配置的特权容器中,然后使用 Podman API 启动额外的容器镜像。
在 Push 模型中,一些工作负载是通过 Ansible 等工具实现的。
- systemd
-
您可以通过写入到
/run/systemd目录来对动态临时重新配置使用 systemd 单元。例如,systemctl edit --runtime myservice.service会动态更改myservice.service单元的配置,而不会使更改持久。 - NetworkManager
-
使用
/run/NetworkManager/conf.d目录应用临时网络配置。使用nmcli connection modify --temporary命令仅在内存中写更改。如果没有--temporary选项,命令会写入持久的更改。 - Podman
-
使用
podman run --rm命令在容器退出时自动删除容器。如果不使用--rm选项,podman run命令会创建一个在系统重启后保持不变的容器。