11.6 用户操作系统配置

我们通常会尝试检测容器中的操作系统类型,然后修改容器中的一些文件,以确保容器正常工作。以下是我们在容器启动时的例行操作清单:

  • 设置/etc/hostname

    设置容器名称

  • 修改/etc/hosts

    允许查找容器主机名

  • 网络配置

    向容器传递完整的网络配置信息

  • 配置DNS

    向容器传递DNS服务器配置信息

  • 调整init系统初始化服务

    例如,修改getty进程数量

  • 设置root口令

    创建新容器时,修改root口令

  • 重新生成ssh_host_keys

    以确保每个容器的key都不重复

  • 随机化crontab

    以确保各容器的cron调度任务不会同时启动

Proxmox VE会用如下注释行将修改内容标识出来

# --- BEGIN PVE ---
<data>
# --- END PVE ---

以上标识符会插入相关文件的合适位置。如果配置文件中已经有标识符,Proxmox VE会更新相关配置,并不再修改原标识符位置。

可以在配置文件相同路径下创建一个.pve-ignore文件,避免Proxmox VE修改该配置文件。例如,只要/etc/.pve-ignore.hosts文件存在,Proxmox VE就不会修改/etc/

hosts文件配置内容。用户用如下命令创建空文件即可:

# touch /etc/.pve-ignore.hosts

由于大部分配置修改都和操作系统类型相关,因此配置内容随Linux发行版和版本号改变而不同。你可以将ostype设置为unmanaged彻底禁止Proxmox VE修改配置。

OS类型检测是通过测试容器中的某些文件来完成的。Proxmox VE首先检查/etc/os-release文件[46]。如果该文件不存在,或者它不包含可明确识别的分发标识符,则检查以下特定于分发的发布文件。

  • Ubuntu

    test/etc/lsb-release (DISTRIB_ID=Ubuntu)

  • Debian

    test/etc/debian_version

  • Fedora

    test/etc/fedora-release

  • RedHat or CentOS

    test/etc/redhat-release

  • ArchLinux

    test/etc/arch-release

  • Alpine

    test/etc/alpine-release

  • Gentoo

    test/etc/gentoo-release

  • 注意

    如果配置的Ostype与自动检测的类型不同,则容器启动失败。