FreeBSD Containers and Orchestration

FreeBSD introduced its container, OS-level virtualization primitive in 1999 in the form of a security-oriented isolation framework and subsystem called Jails. Similar to OpenVZ Containers in 2005, Solaris Zones, LXC, Docker and other implementations, FreeBSD Jails allow isolation of applications or entire stacks with their own processes, filesystems and users, whilst using the same host operating system kernel.

Container Tools: Base System

Out of the box, FreeBSD provides:

Container Tools: Third-Party

These third-party tools aim to simplify and speed up the process of creating and managing FreeBSD jail-based containers on individual hosts, and many include additional support and integration for FreeBSD features such as bhyve virtualization, ZFS, Virtual Networks (VNET), Templating, Import/Export among others.

ACTIVE PROJECTS

AppJail

Jail framework written in C and posix shell to create, deploy and maintain jail-based containers.

Tools:

Supports:

Podman, Buildah

A FreeBSD port of the https://github.com/containers stack. Install sysutils/podman-suite from FreeBSD Ports/Packages.

runj / containerd / nerdctl

Experimental FreeBSD Jail execution runtime implementation and FreeBSD OCI specification development.

Supports:

Bastille

Command-line (shell) tool and automation framework for jail-based containers.

Supports:

pot

Command-line (shell) tool for jail-based containers.

Supports:

cbsd

Command-line and TUI (shell) tool for jail-based containers.

Supports:

None of the above orchestration tools have a "run a plain vanilla linux inside the container" feature, but the start/stop/templating feature of them does not prevent a manually created plain-vanilla-linux-jail.

LEGACY PROJECTS

iocage

Command-line (Python, originally shell) tool for jail-based containers.

Supports:

ioc

Re-implementation (Python) of iocage.

iocell

Fork of original (shell) iocage

ezjail

Command-line (shell) tool for jail-based containers.

Supports:

Container Stores

Daemonless

Native container platform for FreeBSD. Run 90+ modern apps with standard OCI tooling.

AppJail Makejails

Centralized repository to find and deploy useful Makejails

Both of the above stores use dbuild as the primary build engine. It provides a unified interface for building, testing, and publishing FreeBSD OCI container images, ensuring consistency between local development and CI/CD environments.

dbuild on FreshPorts

Container Orchestration

The container tools above can be used as a base for multi-host orchestration, by exporting containers from one host, and either moving the container to another host, or by utilising shared storage (eg: SAN) or ZFS to switch container datasets from one host to another and importing it on the target host.

Additionally the following FreeBSD container orchestration tools are available:

Working Groups

FreeBSD Cloud Native Containers Technologies

If you are interested in helping to improve the support for cloud native containers on FreeBSD, please come to the FreeBSD Cloud Native Containers Technologies meeting. You will work with experienced FreeBSD users and committers in a congenial environment and play a role adding some of the most important enterprise capabilities.

The (draft) goal of the group is "Identify and make progress on important work needed to make FreeBSD a top-tier choice for running cloud native containerised workloads. Aim to champion these pieces of work to the point where they can "graduate" from this group e.g. have an owner and are being actively worked on." Active areas of work (see links below) include Podman, Kubernetes, Container Registry, and more.

Learn about current feature status:

Completed or Mostly Completed Work

Work in Progress and Needs

Biweekly Meeting Details

The 45 minute meeting is biweekly on Mondays at 16:30 UTC time (NOTE: this time will follow UK daylight savings time, so will go forward an hour in the spring).

You can find this meeting, and many others, on the FreeBSD Community Calendar and easily add them to your own calendar.

Joining instructions

https://zoom.us/j/98902292435?pwd=Fbgso5jzdHMb5EIF5VvP12hLCX752N.1

Meeting ID: 989 0229 2435 Passcode: 759073

More ways to join

Meeting notes

https://hackmd.io/xA1CxQT8SfKLUpCiQz-tWA

Containers (last edited 2026-08-12T14:47:37+0000 by GregWallace)