For the complete documentation index, see llms.txt. This page is also available as Markdown.

18.2.容器镜像命名和标签

18.2.1. 引言

FreeBSD 的官方容器镜像从基本系统软件包构建,这些软件包本身在 FreeBSD 发行过程中构建,并发布到公共注册表。

本指南说明了镜像的命名和标签方式,帮助你为需求选择合适的镜像,并确保你理解每种选择的含义,因为新镜像会发布,且在某些情况下,可变标签会被修订。

此命名约定与新的基本系统软件包命名方案一致,在容器镜像和相应的 FreeBSD 发行版之间提供了清晰的来源关系。

18.2.2. 可用镜像类型

提供五种类型的 FreeBSD 容器镜像,适用于 amd64aarch64 架构。

18.2.2.1. freebsd-static

静态镜像旨在作为基础镜像,用于完全静态链接的工作负载。它不包含库和二进制文件,仅包含大多数此类应用程序所需的支撑文件。

  • 公共 TLS 证书

  • 最小化密码文件

  • 最小化 termcap

  • 时区数据库

请注意,按照设计,它的占用空间很小,以使容器被攻破时对攻击者的价值降低。

其中没有 UNIX shell、命令行工具、动态库,也没有包管理器。

它是 FreeBSD 项目提供的最小镜像。

18.2.2.2. freebsd-dynamic

动态镜像使用静态镜像作为父层,并支持使用共享库(包括 libc)。

大多数 FreeBSD 软件应该可在此镜像中正常运行,仅需少量修改。

它没有 shell、rc 系统,也没有包管理器。

这些限制提供了额外的安全性,使得攻击者在被攻破的容器中难以横向移动,或使用从未安装的工具。

18.2.2.3. freebsd-runtime

同样,runtime 镜像在前面的动态层之上构建,并最终添加了用户所期望的最少内容——UNIX shell、rc 系统和包管理器。

它是移植现有应用程序并尽量减少修改的理想基础镜像。

用户需要包含额外的 FreeBSD 基本系统库,以及来自 Ports 树的额外软件包。

这是最接近典型 FreeBSD 系统的镜像,包含 pkg(8) 工具,让用户能安装或执行几乎任何操作,类似于非容器化系统。

18.2.2.4. freebsd-notoolchain

此基础镜像包含典型 FreeBSD 系统上几乎所有预期的工具,不包括直接与硬件相关的工具(因此在容器中通常无用),以及编译器和相关工具链(因为它们相当大)。

18.2.2.5. freebsd-toolchain

Toolchain 基础镜像是所有前述镜像的总和,包括完整的编译器和工具链。

通常可像在正常的非 jail FreeBSD 系统上一样为 FreeBSD 编译几乎所有软件。

所有镜像遵循一致的命名模式,派生自它们所基于的 FreeBSD 发行版。

18.2.3. 镜像标签结构

18.2.3.1. 不可变标签

不可变标签永远不会改变,非常适合需要稳定性和可预测性的生产系统。

这些是发行过程使用的最常见标签。

即使 FreeBSD 安全补丁或勘误通知发布,它们也不会改变。

它们是软件部署基础镜像的理想选择,在这些部署中,即使以更主动的安全修补为代价,也期望高度的可重现性。

  • major.minor(例如 14.4):指向特定的 FreeBSD RELEASE 版本

  • major.minor.pX(例如 14.4p1):指向 RELEASE 的特定补丁级别

  • major.snapYYYYMMDDHHMMSS(例如 16.snap20260325035941):带时间戳的快照构建

18.2.3.2. 可变标签

可变标签会随时间更新,非常适合始终希望获得最新更新但仍希望与 FreeBSD ABI 兼容性保持一致的生产或 CI/CD 系统。

  • major(例如 15)将始终是 15.x 稳定 ABI 线上的最新支持 RELEASE 版本

  • major.snap(例如 15.snap)遵循 15.x 稳定 ABI 线上的最新开发人员快照,通常会领先于官方发行版,并存在中断、不兼容或其他意外问题的风险。

这是最可变的标签,应谨慎使用。

它们与使用 FreeBSD 的 STABLE 或 CURRENT 快照完全相同,因为它们使用这些镜像作为源。

18.2.4. 何时使用每种标签类型

18.2.4.1. 用于生产环境

使用不可变标签以确保环境保持一致:

  • freebsd-runtime:15.0 - 固定到 FreeBSD 15.0-RELEASE

当发布安全补丁时,你必须使用新的镜像标签显式重建或更新。

18.2.4.2. 用于持续集成和开发

使用可变标签自动获取最新更新:

  • 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 分支的最新构建

最后更新于