映像定制器是一种开源工具,可修改现有 Azure Linux 映像以满足特定方案。 它使用 chroot 和环回阻止设备执行自定义,而无需启动虚拟机(VM),使该过程快速、可靠且易于集成到 CI/CD 工作流中。 这是用于生成正式Azure Linux 映像的相同技术。 有关完整的配置参考和高级用法,请参阅 映像定制器文档。
Note
Azure 映像生成器(AIB)与映像定制器的集成目前尚不可用。 目前,你可以直接使用映像自定义器来自定义 Azure Linux 映像。
使用图像定制器,可以:
- 添加或删除包。
- 添加文件或目录。
- 配置用户和系统设置。
- 应用自定义分区布局。
- 以多种格式生成输出图像。
映像定制器还支持嵌套自定义,因此可以进一步自定义已自定义的映像。 对于生成多个映像的团队,请考虑先创建共享自定义基础映像以减少维护开销。
Note
Azure Linux 4.0 现在位于 preview 中,严格限制为评估和测试目的。 它不适合生产用途。
先决条件
- 安装在主机上的 Docker。
- 基础映像:任何 Azure Linux 映像(来自 Azure 市场,或你已在维护的映像)。
- 配置文件:描述修改的 YAML 或 JSON 文件。
支持的主机系统
可以在以下设备上运行映像定制器:
- Azure Linux
- Ubuntu 22.04
使用图像定制器
映像定制器作为发布到 Microsoft 项目注册表(MCR)的容器运行。
列出可用标记
使用以下命令列出映像定制器容器的可用标记:
curl -s "https://mcr.azk8s.cn/v2/azurelinux/imagecustomizer/tags/list" | jq '.tags[]'
自定义图像
通过运行映像定制器容器,并将基础映像和配置文件挂载到该容器中,来自定义映像。 例如:
docker run --rm \
--privileged \
-v "<shared-dir>:z" \
-v "/dev:/dev" \
"mcr.azk8s.cn/azurelinux/imagecustomizer:latest" \
imagecustomizer \
--image-file <base-image.vhdx> \
--config-file <config-file.yaml> \
--output-image-format raw \
--output-image-file <output-image.raw> \
--build-dir "/tmp"
请替换以下值:
| 占位符 | Description |
|---|---|
<shared-dir> |
包含基本映像和配置文件的目录的绝对路径。 自定义镜像也会写入此处。 |
<base-image.vhdx> |
要修改的基础映像文件的路径。 |
<config-file.yaml> |
用于描述你的修改内容的配置文件路径。 |
<output-image.raw> |
自定义输出映像的路径。 |
相关内容
有关详细信息,请参阅 图像定制器文档。