Deep Dive: FreeBSD Podman Networking, Custom CNI, and Resource Accounting

When running native OCI containers on FreeBSD with Podman and ocijail, networking is one of the most interesting—and sometimes confusing—parts of the setup. Because Podman translates container commands into FreeBSD jail(2) system calls, container interfaces aren’t just Linux veth pairs inside network namespaces; they leverage FreeBSD’s VNET (Virtual Network Stack), epair(4) interface pairs, and standard CNI plugins. Here is a practical deep dive into how Podman container networking works on FreeBSD, how to build custom CNI bridge networks for VLANs, how to fix podman stats metric collection with RACCT, and how to structure multi-container Compose setups. ...

August 9, 2026 · 4 min · Michael Johnson

The Daemonless Irony: Why We Chose s6 for FreeBSD Containers

When the mission is to build native FreeBSD OCI images that run in Jails without a heavy background daemon on the host, the project name basically writes itself: daemonless.io. The goal is simplicity, transparency, and architectural purity. So, it is only natural that the very first thing we did was install a suite of tools designed specifically to manage, supervise, and run… daemons. It is a bit like starting a “Car-Free” lifestyle and then immediately buying a fleet of high-end electric scooters. Technically, the name still holds up, but you’re still getting around on wheels. We might be “daemonless” on the host, but inside the container, we’ve hired the most efficient, C-based babysitter in the business. ...

April 4, 2026 · 10 min · Michael Johnson

How I Run Containers in My Homelab

I’ve been running containers on FreeBSD for a while now, and I’ve settled into a workflow that just works. Here’s how I manage everything. The Stack Component Choice Host OS FreeBSD 15 Runtime Podman + ocijail Orchestration Ansible Images Daemonless (FreeBSD-native) Storage ZFS (lz4 compression) Networking VNET jails + bridge No Docker daemon. No Linux VMs. Podman talks to ocijail, which runs containers as native FreeBSD jails. Directory Structure Every service gets its config stored in /containers/<service>/. Simple and predictable: ...

January 20, 2026 · 6 min · Michael Johnson