git: b28edaba02 - main - handbook: Add containers chapter

From: Dave Cottlehuber <dch_at_FreeBSD.org>
Date: Sat, 20 Jun 2026 04:20:00 UTC
The branch main has been updated by dch:

URL: https://cgit.FreeBSD.org/doc/commit/?id=b28edaba02b93ed7f630c8138d167c4ec9c05fef

commit b28edaba02b93ed7f630c8138d167c4ec9c05fef
Author:     Dave Cottlehuber <dch@FreeBSD.org>
AuthorDate: 2026-06-20 04:14:05 +0000
Commit:     Dave Cottlehuber <dch@FreeBSD.org>
CommitDate: 2026-06-20 04:19:10 +0000

    handbook: Add containers chapter
    
    Reviewed by:    ziaee
    Event:          BSDCan 2026
    Sponsored by:   SkunkWerks, GmbH
    Differential Revision:  https://reviews.freebsd.org/D57654
---
 .../books/handbook/advanced-networking/_index.adoc |   4 +-
 .../content/en/books/handbook/audit/_index.adoc    |   4 +-
 documentation/content/en/books/handbook/book.adoc  |   2 +
 .../en/books/handbook/containers/_index.adoc       | 201 +++++++++++++++++++++
 .../content/en/books/handbook/containers/_index.po |  17 ++
 .../en/books/handbook/cutting-edge/_index.adoc     |   4 +-
 .../content/en/books/handbook/disks/_index.adoc    |   4 +-
 .../content/en/books/handbook/dtrace/_index.adoc   |   4 +-
 .../en/books/handbook/filesystems/_index.adoc      |   4 +-
 .../en/books/handbook/firewalls/_index.adoc        |   4 +-
 .../content/en/books/handbook/geom/_index.adoc     |   4 +-
 .../content/en/books/handbook/jails/_index.adoc    |   2 +-
 .../content/en/books/handbook/l10n/_index.adoc     |   4 +-
 .../content/en/books/handbook/mac/_index.adoc      |   6 +-
 .../content/en/books/handbook/mail/_index.adoc     |   4 +-
 .../en/books/handbook/network-servers/_index.adoc  |   4 +-
 .../en/books/handbook/ppp-and-slip/_index.adoc     |   4 +-
 .../en/books/handbook/serialcomms/_index.adoc      |   4 +-
 .../en/books/handbook/usb-device-mode/_index.adoc  |   4 +-
 .../en/books/handbook/virtualization/_index.adoc   |   4 +-
 .../content/en/books/handbook/zfs/_index.adoc      |   4 +-
 21 files changed, 256 insertions(+), 36 deletions(-)

diff --git a/documentation/content/en/books/handbook/advanced-networking/_index.adoc b/documentation/content/en/books/handbook/advanced-networking/_index.adoc
index 394a9605e6..182c424c57 100644
--- a/documentation/content/en/books/handbook/advanced-networking/_index.adoc
+++ b/documentation/content/en/books/handbook/advanced-networking/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 34. Advanced Networking
+title: Chapter 35. Advanced Networking
 part: IV. Network Communication
 prev: books/handbook/firewalls
 next: books/handbook/partv
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 34
+:sectnumoffset: 35
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/audit/_index.adoc b/documentation/content/en/books/handbook/audit/_index.adoc
index b5ed5d5d5b..7b797b7b0e 100644
--- a/documentation/content/en/books/handbook/audit/_index.adoc
+++ b/documentation/content/en/books/handbook/audit/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 19. Security Event Auditing
+title: Chapter 20. Security Event Auditing
 part: Part III. System Administration
 prev: books/handbook/mac
 next: books/handbook/disks
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 19
+:sectnumoffset: 20
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/book.adoc b/documentation/content/en/books/handbook/book.adoc
index e4280cca14..c8811ce49e 100644
--- a/documentation/content/en/books/handbook/book.adoc
+++ b/documentation/content/en/books/handbook/book.adoc
@@ -99,6 +99,8 @@ include::{chapters-path}security/_index.adoc[leveloffset=+1]
 
 include::{chapters-path}jails/_index.adoc[leveloffset=+1]
 
+include::{chapters-path}containers/_index.adoc[leveloffset=+1]
+
 include::{chapters-path}mac/_index.adoc[leveloffset=+1]
 
 include::{chapters-path}audit/_index.adoc[leveloffset=+1]
diff --git a/documentation/content/en/books/handbook/containers/_index.adoc b/documentation/content/en/books/handbook/containers/_index.adoc
new file mode 100644
index 0000000000..d23ce96aed
--- /dev/null
+++ b/documentation/content/en/books/handbook/containers/_index.adoc
@@ -0,0 +1,201 @@
+---
+title: Chapter 18. OCI Containers
+part: Part III. System Administration
+prev: books/handbook/security
+next: books/handbook/mac
+description: OCI Containers provide an industry-standard way to describe, distribute, and run container-based workloads
+tags: ["containers", "oci"]
+showBookMenu: true
+weight: 21
+params:
+  path: "/books/handbook/containers/"
+---
+
+[[containers]]
+= OCI Containers
+:doctype: book
+:toc: macro
+:toclevels: 1
+:icons: font
+:sectnums:
+:sectnumoffset: 18
+:partnums:
+:source-highlighter: rouge
+:experimental:
+:images-path: books/handbook/containers/
+
+ifdef::env-beastie[]
+ifdef::backend-html5[]
+:imagesdir: ../../../../images/{images-path}
+endif::[]
+ifndef::book[]
+include::shared/authors.adoc[]
+include::shared/mirrors.adoc[]
+include::shared/releases.adoc[]
+include::shared/attributes/attributes-{{% lang %}}.adoc[]
+include::shared/{{% lang %}}/teams.adoc[]
+include::shared/{{% lang %}}/mailing-lists.adoc[]
+include::shared/{{% lang %}}/urls.adoc[]
+toc::[]
+endif::[]
+ifdef::backend-pdf,backend-epub3[]
+include::../../../../../shared/asciidoctor.adoc[]
+endif::[]
+endif::[]
+
+ifndef::env-beastie[]
+toc::[]
+include::../../../../../shared/asciidoctor.adoc[]
+endif::[]
+
+[[containers-synopsis]]
+== Synopsis
+
+The https://opencontainers.org/[Open Container Initiative], commonly referred to as `+OCI+`, provides a vendor and OS-agnostic way to describe, distribute, and run containers.
+
+The OCI specifications provide these in a way that can be used on many different operating systems, including FreeBSD.
+
+The underlying virtualization technology is still FreeBSD jails, with the same feature set, but OCI tooling enables additional ways of working, and constructing, container-based workloads.
+
+https://www.freebsd.org/releases/14.3R/announce/[14.3-RELEASE] and upwards, including https://download.freebsd.org/snapshots/OCI-IMAGES/[snapshots], now include OCI-compatible images, and the https://podman.io/[Podman] toolkit on FreeBSD is ready to use them, on both amd64 and arm64 architectures.
+
+For FreeBSD users familiar with jails, there is a loose analogy:
+
+* FreeBSD's `+base.txz+` tarball is an example of a container image.
+* the `+jail.conf+` file describes the desired container properties, or `+Containerfile+`.
+* use the `+jail ..+` command to run a container, given a filesystem path, with the `+podman+` suite of tools.
+
+By importing this container stack, FreeBSD users both benefit from common tooling, but also enjoy wide support across public and private container registries, and container-specific tooling and services.
+
+In the https://download.freebsd.org/releases/OCI-IMAGES/{rel-latest}-RELEASE/aarch64/Latest/[aarch64] and https://download.freebsd.org/releases/OCI-IMAGES/{rel-latest}-RELEASE/amd64/Latest/[amd64] download directories, you'll see official OCI-format images.
+The naming may be a little confusing at first, but should make sense once you start using them.
+
+The same images are also available through common public container registries, including https://hub.docker.com/u/freebsd[Docker Hub], and https://github.com/orgs/freebsd/packages[Github Container Registry], but for the strongest chain of trust, you should fetch your image directly from https://download.freebsd.org/releases[Official FreeBSD Releases], and import them to your local system.
+
+Each image comprises a subset of a standard FreeBSD `+base.txz+` release tarball, for various use cases, and the usual FreeBSD `+CHECKSUM.*+` files, that can be verified against the PGP-signed release announcement.
+This gives a very strong chain of provenance, directly verifiable from the FreeBSD release team.
+
+[source,display,subs="verbatim,attributes"]
+----
+CHECKSUM.SHA256
+CHECKSUM.SHA512
+FreeBSD-{rel-latest}-RELEASE-amd64-container-image-static.txz
+FreeBSD-{rel-latest}-RELEASE-amd64-container-image-dynamic.txz
+FreeBSD-{rel-latest}-RELEASE-amd64-container-image-runtime.txz
+FreeBSD-{rel-latest}-RELEASE-amd64-container-image-notoolchain.txz
+FreeBSD-{rel-latest}-RELEASE-amd64-container-image-toolchain.txz
+----
+
+[[containers-naming-tagging]]
+== Container Image Naming and Tagging
+
+=== Introduction
+
+FreeBSD's official container images are built from base system packages, themselves built during the FreeBSD release process, and published to public registries.
+
+This guide explains how images are named and tagged, helping you choose the right image for your needs, and ensuring you understand the implications of each choice, as new images are published, and in some cases, mutable tags are amended.
+
+This naming convention aligns with the new base system package naming scheme, giving clear provenance between container images and the corresponding FreeBSD releases.
+
+[[containers-image-types]]
+=== Available Image Types
+
+Five types of FreeBSD container images are available, for `+amd64+` and `+aarch64+` architectures.
+
+[[containers-freebsd-static]]
+==== `+freebsd-static+`
+
+The static image is intended as a base image, for a workload which is entirely statically linked. It contains no libraries, nor binaries, just the supporting files that most applications of this nature require.
+
+* public TLS certificates
+* minimal password file
+* minimal termcap
+* timezone database
+
+Note that it has, by design, a lean footprint, to make a security compromise of the container less useful to the attacker.
+There's no UNIX shell, no command-line tools, no dynamic libraries, nor package manager.
+
+It is the smallest image provided by the FreeBSD project.
+
+[[containers-freebsd-dynamic]]
+==== `+freebsd-dynamic+`
+
+The dynamic image uses the static image as a parent layer, and supports using shared libraries, including `+libc+`.
+
+Most FreeBSD software should run without issue with this image, with minor changes.
+
+It doesn't have a shell, rc system, nor a package manager.
+These limitations are additional security, making it awkward for attackers in a compromised container to move laterally, or make use of tools that were never installed.
+
+[[containers-freebsd-runtime]]
+==== `+freebsd-runtime+`
+
+Again, runtime builds on the preceding dynamic layer, and finally adds the minimum that a user would expect - a UNIX shell, rc system, and the package manager.
+
+It is the ideal base image for porting existing applications with a minimum of changes.
+Users will need to include additional FreeBSD base system libraries, as well as additional packages from the Ports tree.
+
+This is the closest to a typical FreeBSD system, including the man:pkg[8] tool, allowing users to install, or do, almost anything, similar to a non-containerised system.
+
+[[containers-freebsd-notoolchain]]
+==== `+freebsd-notoolchain+`
+
+This base image contains almost all tools one would expect on a typical FreeBSD system, excluding those that are directly hardware-related, and thus not generally useful within a container, and the compiler and related toolchain, as it is quite large.
+
+[[containers-freebsd-toolchain]]
+==== `+freebsd-toolchain+`
+
+The Toolchain base image is the sum of all preceding images, including a full compiler and toolchain.
+It is generally possible to compile almost any software for FreeBSD in the same way as a normal non-jailed FreeBSD system.
+
+All images follow a consistent naming pattern, derived from the FreeBSD release they are based upon.
+
+[[containers-tag-structure]]
+=== Image Tag Structure
+
+[[containers-immutable-tags]]
+==== Immutable Tags
+
+Immutable tags never change and are ideal for production systems where you need stability and predictability.
+
+These are the most common tags used by the release process.
+They will not change, even after FreeBSD security patches, or errata notices.
+
+They are ideal for base images for software deployments where a high degree of reproducibility is expected, even as a trade-off against more pro-active security patching.
+
+* `+major.minor+` (e.g., `+14.4+`): Points to a specific FreeBSD RELEASE version
+* `+major.minor.pX+` (e.g., `+14.4p1+`): Points to a specific patch level of a RELEASE
+* `+major.snapYYYYMMDDHHMMSS+` (e.g., `+16.snap20260325035941+`): a snapshot build with timestamp
+
+[[containers-mutable-tags]]
+==== Mutable Tags
+
+Mutable tags are updated over time and are ideal for production, or CI/CD systems that always want the latest updates, but still wish to align with FreeBSD ABI compatibility.
+
+* `+major+` (e.g., `+15+`) will always be the latest support RELEASE version along the 15.x stable ABI
+* `+major.snap+` (e.g., `+15.snap+`) follows the latest developer snapshot along the 15.x stable ABI train, will often be in advance of official releases, and carries a risk of breakage, incompatibility, or other unanticipated issues.
+This is the most mutable tag, and should be used with caution.
+They are exactly the same as using FreeBSD's STABLE or CURRENT snapshots, as they use those images as their source.
+
+=== When to Use Each Tag Type
+
+==== For Production
+
+Use immutable tags to ensure your environment stays consistent:
+
+* `+freebsd-runtime:15.0+` - pinned to FreeBSD 15.0-RELEASE
+
+When security patches are released, you must explicitly rebuild or update with a new image tag.
+
+==== For Continuous Integration and Development
+
+Use mutable tags to automatically get the latest updates:
+
+* `+freebsd-runtime:15+` - always the latest official RELEASE in the 15.x series
+
+These additional mutable tags will follow the regular published snapshots of FreeBSD STABLE and CURRENT.
+Use these if you want to test against what subsequent future releases of FreeBSD may contain, and accept occasional breakage or unanticipated changes.
+
+* `+freebsd-runtime:14.snap+` - always the latest build from 14-STABLE branch
+* `+freebsd-runtime:15.snap+` - always the latest build from 15-STABLE branch
+* `+freebsd-runtime:16.snap+` - always the latest build from 16-CURRENT branch
diff --git a/documentation/content/en/books/handbook/containers/_index.po b/documentation/content/en/books/handbook/containers/_index.po
new file mode 100644
index 0000000000..8eb74f96cd
--- /dev/null
+++ b/documentation/content/en/books/handbook/containers/_index.po
@@ -0,0 +1,17 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR The FreeBSD Project
+# This file is distributed under the same license as the FreeBSD Documentation package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: FreeBSD Documentation VERSION\n"
+"POT-Creation-Date: 2025-11-08 16:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
diff --git a/documentation/content/en/books/handbook/cutting-edge/_index.adoc b/documentation/content/en/books/handbook/cutting-edge/_index.adoc
index ef964001ce..79f4094381 100644
--- a/documentation/content/en/books/handbook/cutting-edge/_index.adoc
+++ b/documentation/content/en/books/handbook/cutting-edge/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 26. Updating and Upgrading FreeBSD
+title: Chapter 27. Updating and Upgrading FreeBSD
 part: Part III. System Administration
 prev: books/handbook/l10n
 next: books/handbook/dtrace
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 26
+:sectnumoffset: 27
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/disks/_index.adoc b/documentation/content/en/books/handbook/disks/_index.adoc
index adf394482f..db966c3f67 100644
--- a/documentation/content/en/books/handbook/disks/_index.adoc
+++ b/documentation/content/en/books/handbook/disks/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 20. Storage
+title: Chapter 21. Storage
 part: Part III. System Administration
 prev: books/handbook/audit
 next: books/handbook/geom
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 20
+:sectnumoffset: 21
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/dtrace/_index.adoc b/documentation/content/en/books/handbook/dtrace/_index.adoc
index 1295a25aac..32a2b14d8c 100644
--- a/documentation/content/en/books/handbook/dtrace/_index.adoc
+++ b/documentation/content/en/books/handbook/dtrace/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 27. DTrace
+title: Chapter 28. DTrace
 part: Part III. System Administration
 prev: books/handbook/cutting-edge
 next: books/handbook/usb-device-mode
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 27
+:sectnumoffset: 28
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/filesystems/_index.adoc b/documentation/content/en/books/handbook/filesystems/_index.adoc
index 7e15136a5c..f453d368a1 100644
--- a/documentation/content/en/books/handbook/filesystems/_index.adoc
+++ b/documentation/content/en/books/handbook/filesystems/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 23. Other File Systems
+title: Chapter 24. Other File Systems
 part: Part III. System Administration
 prev: books/handbook/zfs
 next: books/handbook/virtualization
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 23
+:sectnumoffset: 24
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/firewalls/_index.adoc b/documentation/content/en/books/handbook/firewalls/_index.adoc
index ed6c1ad064..3a59a59e26 100644
--- a/documentation/content/en/books/handbook/firewalls/_index.adoc
+++ b/documentation/content/en/books/handbook/firewalls/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 33. Firewalls
+title: Chapter 34. Firewalls
 part: IV. Network Communication
 prev: books/handbook/network-servers
 next: books/handbook/advanced-networking
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 33
+:sectnumoffset: 34
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/geom/_index.adoc b/documentation/content/en/books/handbook/geom/_index.adoc
index 65cb35b621..7b61b2c19b 100644
--- a/documentation/content/en/books/handbook/geom/_index.adoc
+++ b/documentation/content/en/books/handbook/geom/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: "Chapter 21. GEOM: Modular Disk Transformation Framework"
+title: "Chapter 22. GEOM: Modular Disk Transformation Framework"
 part: Part III. System Administration
 prev: books/handbook/disks
 next: books/handbook/zfs
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 21
+:sectnumoffset: 22
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/jails/_index.adoc b/documentation/content/en/books/handbook/jails/_index.adoc
index c35b6a0084..f3e6eef17f 100644
--- a/documentation/content/en/books/handbook/jails/_index.adoc
+++ b/documentation/content/en/books/handbook/jails/_index.adoc
@@ -2,7 +2,7 @@
 title: Chapter 17. Jails and Containers
 part: Part III. System Administration
 prev: books/handbook/security
-next: books/handbook/mac
+next: books/handbook/containers
 description: Jails improve on the concept of the traditional chroot environment in several ways
 tags: ["jails", "creating", "managing", "updating"]
 showBookMenu: true
diff --git a/documentation/content/en/books/handbook/l10n/_index.adoc b/documentation/content/en/books/handbook/l10n/_index.adoc
index 13771cecf4..08ceed5d24 100644
--- a/documentation/content/en/books/handbook/l10n/_index.adoc
+++ b/documentation/content/en/books/handbook/l10n/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 25. Localization - i18n/L10n Usage and Setup
+title: Chapter 26. Localization - i18n/L10n Usage and Setup
 part: Part III. System Administration
 prev: books/handbook/virtualization
 next: books/handbook/cutting-edge
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 25
+:sectnumoffset: 26
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/mac/_index.adoc b/documentation/content/en/books/handbook/mac/_index.adoc
index 992b9700c0..88ec739dc7 100644
--- a/documentation/content/en/books/handbook/mac/_index.adoc
+++ b/documentation/content/en/books/handbook/mac/_index.adoc
@@ -1,7 +1,7 @@
 ---
-title: Chapter 18. Mandatory Access Control
+title: Chapter 19. Mandatory Access Control
 part: Part III. System Administration
-prev: books/handbook/jails
+prev: books/handbook/containers
 next: books/handbook/audit
 description: "This chapter focuses on the MAC framework and the set of pluggable security policy modules FreeBSD provides for enabling various security mechanisms"
 tags: ["MAC", "labels", "security", "configuration", "nagios"]
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 18
+:sectnumoffset: 19
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/mail/_index.adoc b/documentation/content/en/books/handbook/mail/_index.adoc
index 636afe8365..5ba0637663 100644
--- a/documentation/content/en/books/handbook/mail/_index.adoc
+++ b/documentation/content/en/books/handbook/mail/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 31. Electronic Mail
+title: Chapter 32. Electronic Mail
 part: IV. Network Communication
 prev: books/handbook/ppp-and-slip
 next: books/handbook/network-servers
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 31
+:sectnumoffset: 32
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/network-servers/_index.adoc b/documentation/content/en/books/handbook/network-servers/_index.adoc
index 0b2a65af0b..0f52a3e6e3 100644
--- a/documentation/content/en/books/handbook/network-servers/_index.adoc
+++ b/documentation/content/en/books/handbook/network-servers/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 32. Network Servers
+title: Chapter 33. Network Servers
 part: IV. Network Communication
 prev: books/handbook/mail
 next: books/handbook/firewalls
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 32
+:sectnumoffset: 33
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/ppp-and-slip/_index.adoc b/documentation/content/en/books/handbook/ppp-and-slip/_index.adoc
index d73f687c4d..276fe4cdb1 100644
--- a/documentation/content/en/books/handbook/ppp-and-slip/_index.adoc
+++ b/documentation/content/en/books/handbook/ppp-and-slip/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 30. PPP
+title: Chapter 31. PPP
 part: IV. Network Communication
 prev: books/handbook/serialcomms
 next: books/handbook/mail
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 30
+:sectnumoffset: 31
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/serialcomms/_index.adoc b/documentation/content/en/books/handbook/serialcomms/_index.adoc
index f128c6b0e9..af9c67f81d 100644
--- a/documentation/content/en/books/handbook/serialcomms/_index.adoc
+++ b/documentation/content/en/books/handbook/serialcomms/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 29. Serial Communications
+title: Chapter 30. Serial Communications
 part: Part IV. Network Communication
 prev: books/handbook/partiv
 next: books/handbook/ppp-and-slip
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 29
+:sectnumoffset: 30
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/usb-device-mode/_index.adoc b/documentation/content/en/books/handbook/usb-device-mode/_index.adoc
index c778b6a469..7216eccc66 100644
--- a/documentation/content/en/books/handbook/usb-device-mode/_index.adoc
+++ b/documentation/content/en/books/handbook/usb-device-mode/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 28. USB Device Mode / USB OTG
+title: Chapter 29. USB Device Mode / USB OTG
 part: Part III. System Administration
 prev: books/handbook/dtrace
 next: books/handbook/partiv
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 28
+:sectnumoffset: 29
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/virtualization/_index.adoc b/documentation/content/en/books/handbook/virtualization/_index.adoc
index 16825f3968..7ff3e2c726 100644
--- a/documentation/content/en/books/handbook/virtualization/_index.adoc
+++ b/documentation/content/en/books/handbook/virtualization/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 24. Virtualization
+title: Chapter 25. Virtualization
 part: Part III. System Administration
 prev: books/handbook/filesystems
 next: books/handbook/l10n
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 24
+:sectnumoffset: 25
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/handbook/zfs/_index.adoc b/documentation/content/en/books/handbook/zfs/_index.adoc
index 194bbf479e..e1738f9716 100644
--- a/documentation/content/en/books/handbook/zfs/_index.adoc
+++ b/documentation/content/en/books/handbook/zfs/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 22. The Z File System (ZFS)
+title: Chapter 23. The Z File System (ZFS)
 part: Part III. System Administration
 prev: books/handbook/geom
 next: books/handbook/filesystems
@@ -18,7 +18,7 @@ params:
 :toclevels: 1
 :icons: font
 :sectnums:
-:sectnumoffset: 22
+:sectnumoffset: 23
 :partnums:
 :source-highlighter: rouge
 :experimental: