The Handbook

    Theme
    • Guides
        • Check a system before installing FreeBSD
        • Orient a Linux administrator on FreeBSD
        • Supported FreeBSD releases
        • Choose a FreeBSD documentation and support channel
        • Move files safely without GNU mv -t
        • Update, upgrade, or update packages?
        • Upgrade 14.4 or 15.0 to FreeBSD 15.1
        • Choose packages, ports, or poudriere
        • Choose the quarterly or latest package branch
        • Choose a FreeBSD download or package mirror
        • Make a system setting persistent
        • Configure locale, keyboard, and time zone
        • Configure a serial console for recovery
        • Choose a custom kernel, module, or loader setting
        • Run a Linux binary with the compatibility layer
        • Check desktop and laptop hardware before installation
        • Choose and check a graphics driver
        • Choose Xorg or Wayland
        • Build a maintainable desktop baseline
        • Install and check a desktop browser
        • Check laptop Wi-Fi, power, and suspend
        • Check multimedia readiness
        • Choose and configure a printing stack
        • Run Windows applications with Wine
        • Snapshot and replicate a ZFS dataset
        • Choose a filesystem and storage layout
        • Operate ZFS without losing the recovery path
        • Restore files from a ZFS snapshot
        • Read ZFS pool health and run a scrub
        • Replace a failed device in a ZFS mirror
        • Replicate a ZFS dataset over SSH
        • Change PF safely on a remote host
        • Configure a narrow WireGuard tunnel
        • Plan a FreeBSD home server
        • Choose a mail server or an outgoing relay
        • Publish a network service safely
        • Choose a jail network model
        • Choose native jails or a jail manager
        • Choose a jail or a bhyve virtual machine
        • Establish a FreeBSD security baseline
        • Choose a MAC policy
        • Audit security-relevant activity
        • Start a DTrace performance investigation
    • Integrations
        • Create a first jail with Bastille
        • Compare jail managers and OCI tooling
        • Publish a Bastille service through PF
        • Mount a ZFS dataset in a Bastille jail
        • Update and upgrade Bastille jails
        • Back up and restore a Bastille jail
        • Prepare bhyve and vm-bhyve
        • Choose NFS or Samba for file sharing
        • Choose ZFS backup automation
        • Operate a signed poudriere repository
        • Manage FreeBSD configuration with Ansible or Salt
        • Run Motion with webcamd on FreeBSD
        • Design a reverse proxy, certificates, and monitoring
    • FAQ
    • Troubleshooting
        • Recover an interrupted freebsd-update run
        • Resolve a package repository or ABI mismatch
        • Diagnose the FreeBSD boot path
        • Recover with a ZFS boot environment
        • Diagnose DNS, routing, and firewall paths
        • Diagnose network mbuf exhaustion
        • Bind a service to a low port without running it as root
        • Diagnose audio output or input
        • Diagnose webcamd, cuse, and a webcam
        • Fix USB device permissions without opening every device
    • About this handbook
    • Synopsis
    • Prefer native jails when the boundary is small
    • Prefer a manager when lifecycle repetition dominates
    • Evaluate ownership, not command count
    • Select the next guide
    • Primary references

    Choose native jails or a jail manager

    Last reviewed
    13 August 2026
    Applies to
    15.1-RELEASE, 15.0-RELEASE, 14.4-RELEASE

    Synopsis #

    FreeBSD supplies the jail mechanism, jail.conf, lifecycle commands, ZFS integration, resource controls, and networking primitives. A jail manager composes those facilities into release, storage, network, template, backup, or orchestration workflows.

    Use native configuration when the small amount of visible local policy is an advantage. Add a manager when its maintained lifecycle replaces enough local glue to justify another configuration format and upgrade dependency.

    Prefer native jails when the boundary is small #

    Native jail.conf is a strong fit when:

    • only a few long-lived jails exist;
    • each jail has intentionally different configuration;
    • release installation and upgrades are already automated elsewhere;
    • direct review of mounts, addresses, and permissions is important;
    • no image catalogue or multi-host orchestration is required.

    The host configuration remains ordinary FreeBSD state. service jail, jls, jexec, rctl, PF, ZFS, and rc.d can be inspected without translating a manager’s model.

    Native does not mean manual. Configuration files and scripts can be kept under version control and deployed with an existing configuration-management system.

    Prefer a manager when lifecycle repetition dominates #

    A manager can earn its place when it provides several required capabilities as one coherent workflow:

    • fetching and maintaining jail releases;
    • repeatable application templates or image builds;
    • consistent NAT, VNET, bridge, and port-mapping operations;
    • import, export, migration, and cloning;
    • multi-host scheduling or an application catalogue;
    • unified jail and bhyve administration.

    The cost is a second lifecycle. Its package, configuration schema, release support, backup format, and project health must be reviewed alongside FreeBSD itself.

    Evaluate ownership, not command count #

    For each candidate, determine who owns:

    Boundary Question
    Release files Are they shared, copied, or installed from pkgbase?
    Network Which tool creates addresses, bridges, epairs, NAT, and inbound rules?
    Storage Which datasets and mount tables are created, and who snapshots them?
    Configuration Can the resulting jail and host state be inspected with base tools?
    Recovery Is there a documented export and an independently tested restore?
    Upgrades Does the project support every FreeBSD release in use?
    Exit Can jails and data be migrated without retaining the manager forever?

    The smallest command is not necessarily the smallest system. A manager that hides an important host change creates work later even if initial creation is convenient.

    Select the next guide #

    For an overview of maintained approaches and their different scopes, see Compare jail managers and OCI tooling . For a conventional managed workflow, start with Create a first jail with Bastille .

    If the workload requires another kernel, stronger kernel isolation, or device emulation, the correct comparison is Choose a jail or a bhyve virtual machine , not another jail manager.

    Primary references #

    • FreeBSD Handbook: Jails and Containers
    • jail.conf(5)
    • jail(8)
    • jls(8)
    • rctl(8)

    Independent documentation. Not affiliated with or endorsed by the FreeBSD Project or the FreeBSD Foundation.

    Report a bug
    • Synopsis
    • Prefer native jails when the boundary is small
    • Prefer a manager when lifecycle repetition dominates
    • Evaluate ownership, not command count
    • Select the next guide
    • Primary references