第 12 章 附录:系统配置
12.1. 临时运行时重新配置 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以在基础镜像配置中执行动态重新配置。例如,您可以运行 firewall-cmd --permanent
命令,以便在重新引导后实现永久更改。
警告
默认情况下,/etc
目录具有持久性。如果您使用工具执行更改,如 firewall-cmd --permanent
,系统上的 /etc
内容可能与容器镜像中描述的内容不同。
在默认配置中,首先在基础镜像中进行更改,然后在不重启运行系统的情况下对更改进行排队,然后同时写入,以仅将更改应用到内存中的现有系统。
您可以使用绑定挂载将 /etc
目录配置为临时。在这种情况下,etc
目录是计算机的本地根文件系统的一部分。例如,如果您使用 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
命令,仅在内存中写入更改。如果没有--临时
选项,命令会写入持久更改。 - podman
-
使用
podman run --rm
命令在容器退出时自动移除容器。如果没有使用-rm
选项,podman run
命令会创建一个在系统重启后保留的容器。