> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/handbook/di-18-zhang-oci-rong-qi/18.2.-rong-qi-jing-xiang-ming-ming-he-biao-qian.md).

# 18.2.容器镜像命名和标签

## 18.2.1. 引言

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

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

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

## 18.2.2. 可用镜像类型

提供五种类型的 FreeBSD 容器镜像，适用于 `amd64` 和 `aarch64` 架构。

### 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)](https://man.freebsd.org/cgi/man.cgi?query=pkg\&sektion=8\&format=html) 工具，让用户能安装或执行几乎任何操作，类似于非容器化系统。

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.bsdcn.org/handbook/di-18-zhang-oci-rong-qi/18.2.-rong-qi-jing-xiang-ming-ming-he-biao-qian.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
