18.2.容器镜像命名和标签
最后更新于
FreeBSD 的官方容器镜像从基本系统软件包构建,这些软件包本身在 FreeBSD 发行过程中构建,并发布到公共注册表。
本指南说明了镜像的命名和标签方式,帮助你为需求选择合适的镜像,并确保你理解每种选择的含义,因为新镜像会发布,且在某些情况下,可变标签会被修订。
此命名约定与新的基本系统软件包命名方案一致,在容器镜像和相应的 FreeBSD 发行版之间提供了清晰的来源关系。
提供五种类型的 FreeBSD 容器镜像,适用于 amd64 和 aarch64 架构。
freebsd-static静态镜像旨在作为基础镜像,用于完全静态链接的工作负载。它不包含库和二进制文件,仅包含大多数此类应用程序所需的支撑文件。
公共 TLS 证书
最小化密码文件
最小化 termcap
时区数据库
请注意,按照设计,它的占用空间很小,以使容器被攻破时对攻击者的价值降低。
其中没有 UNIX shell、命令行工具、动态库,也没有包管理器。
它是 FreeBSD 项目提供的最小镜像。
freebsd-dynamic动态镜像使用静态镜像作为父层,并支持使用共享库(包括 libc)。
大多数 FreeBSD 软件应该可在此镜像中正常运行,仅需少量修改。
它没有 shell、rc 系统,也没有包管理器。
这些限制提供了额外的安全性,使得攻击者在被攻破的容器中难以横向移动,或使用从未安装的工具。
freebsd-runtime同样,runtime 镜像在前面的动态层之上构建,并最终添加了用户所期望的最少内容——UNIX shell、rc 系统和包管理器。
它是移植现有应用程序并尽量减少修改的理想基础镜像。
用户需要包含额外的 FreeBSD 基本系统库,以及来自 Ports 树的额外软件包。
这是最接近典型 FreeBSD 系统的镜像,包含 pkg(8) 工具,让用户能安装或执行几乎任何操作,类似于非容器化系统。
freebsd-notoolchain此基础镜像包含典型 FreeBSD 系统上几乎所有预期的工具,不包括直接与硬件相关的工具(因此在容器中通常无用),以及编译器和相关工具链(因为它们相当大)。
freebsd-toolchainToolchain 基础镜像是所有前述镜像的总和,包括完整的编译器和工具链。
通常可像在正常的非 jail FreeBSD 系统上一样为 FreeBSD 编译几乎所有软件。
所有镜像遵循一致的命名模式,派生自它们所基于的 FreeBSD 发行版。
不可变标签永远不会改变,非常适合需要稳定性和可预测性的生产系统。
这些是发行过程使用的最常见标签。
即使 FreeBSD 安全补丁或勘误通知发布,它们也不会改变。
它们是软件部署基础镜像的理想选择,在这些部署中,即使以更主动的安全修补为代价,也期望高度的可重现性。
major.minor(例如 14.4):指向特定的 FreeBSD RELEASE 版本
major.minor.pX(例如 14.4p1):指向 RELEASE 的特定补丁级别
major.snapYYYYMMDDHHMMSS(例如 16.snap20260325035941):带时间戳的快照构建
可变标签会随时间更新,非常适合始终希望获得最新更新但仍希望与 FreeBSD ABI 兼容性保持一致的生产或 CI/CD 系统。
major(例如 15)将始终是 15.x 稳定 ABI 线上的最新支持 RELEASE 版本
major.snap(例如 15.snap)遵循 15.x 稳定 ABI 线上的最新开发人员快照,通常会领先于官方发行版,并存在中断、不兼容或其他意外问题的风险。
这是最可变的标签,应谨慎使用。
它们与使用 FreeBSD 的 STABLE 或 CURRENT 快照完全相同,因为它们使用这些镜像作为源。
使用不可变标签以确保环境保持一致:
freebsd-runtime:15.0 - 固定到 FreeBSD 15.0-RELEASE
当发布安全补丁时,你必须使用新的镜像标签显式重建或更新。
使用可变标签自动获取最新更新:
freebsd-runtime:15 - 始终是 15.x 系列中的最新官方 RELEASE
这些额外的可变标签将遵循 FreeBSD STABLE 和 CURRENT 的定期发布快照。
如果你想针对 FreeBSD 未来发行版可能包含的内容测试,并接受偶尔的中断或意外更改,请使用这些标签。
freebsd-runtime:14.snap - 始终是 14-STABLE 分支的最新构建
freebsd-runtime:15.snap - 始终是 15-STABLE 分支的最新构建
freebsd-runtime:16.snap - 始终是 16-CURRENT 分支的最新构建
最后更新于