系统环境
Proxmox VE 7.2-7
TL;DR
简单来说就是在原有容器模板的基础上添加自己需要的额外配置,
对于一个模板来说最好仅添加你日常所需服务的通用的部分。
你也不希望新容器一生成发现局域网里蹦出来两个dhcp服务器吧(笑
为什么要自己做模板?
我个人对全新环境的需求比较简单,
无非是预配ssh pubkey,安装好常用工具(nano、htop、lsof、iperf3等)
省下每次开机后数分钟的安装时间。
或者有运行k3s/k8s实验环境,需要快速生成一个worker节点,
通过预装好容器环境的模板开机,只需要简单修改配置即可快速向注册中心注册节点。
接触过各种公有云的小伙伴可能会想到cloud-init + 开机脚本的方案,
但是对于HomeLab这种可以直接接触系统镜像/模板的环境来说,
直接通过模板开机要比原生环境+开机脚本要快速的多,类似于云环境的自定义ISO/vmdk功能。
模板制作
先通过自带模板创建一个LXC容器,
在这里我选择 ubuntu22.04 LTS 作为例子
创建后通过SSH进入容器
完成安装与修改后,在PVE面板中关闭该容器,
然后点击转换成模板
模板使用
右键点击制作好的模板,选择克隆
注意克隆模式有“链接克隆”与“完整克隆”两种,
区别如下:
- 链接克隆:通过链接原始模板的方式立即创建新的容器映像,所有该模式下的克隆共享该模板的原始数据,因此最初不占用额外空间,对于新容器中的改动通过写时复制技术写入到新的数据块中。
- 完整克隆:等效于完整复制一份新的磁盘映像,在该模式下允许克隆至其它存储空间中。
对于需要通过同一个模板大量创建容器的场景,选择链接克隆可以减小空间占用。
克隆完成后,容器默认处于关闭的状态,
注意修改网络选项中的IP地址为不冲突的IP,
或在创建模板时使用DHCP作为分配地址的方式。
开机验证先前加载的ssh公钥及安装的软件与配置与创建的模板一致。
到此完成了所有lxc模板的制作与使用步骤。