pot: another container framework for FreeBSD, based on jails, ZFS and pf
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



Test Status License

Another container framework based on jails, to run FreeBSD containers on FreeBSD. Every running instance is called "pot", but less flexible than a VM. It's heavily based on FreeBSD, in particular on jails, ZFS, pf and rctl.

Currently, pot is only a bunch of shell script enforcing the pot container model, but it relay only on the command line tools provided by FreeBSD to play with jails, ZFS and so on. So, at the moment the only dependency is the operating system. That will change in the future, to provide more features.

It is an educational/experimental project, so don't expect any production quality. Yet.

The project was presented at FOSDEM 2018: video mp4 video webm slides (PDF)


A package is available, even if it could be a bit outdated. You can install it via:

# pkg install pot freebsd-release-manifests

Or you can install pot manually:

  • clone the master repo
  • add the bin directory to the PATH environment variable


Before to run any initialization, I suggest to copy etc/pot/pot.default.conf in etc/pot/pot.conf and set all variables in accord to your system.

When the pot configuration file is ready, the initialization can be performed (root privileges are needed):

# pot init
# pot create-base -r 11.2

The first command will initialize zfs datasets

The second command create a usable base, based on FreeBSD 11.2

NOTE You can use base versions that are less or equal of your host system versions.

Example: you can create a 11.1 or a 10.4 base on a FreeBSD 11.2 machine.

Example2: you can create a 10.4 base on a FreeBSD 10.4 machine, but not a 11.2 base.

Create your first pot

Now you can create a pot using the command:

# pot create -p potname -b 11.2

To start and access it, you can used the command:

# pot run potname

This command will start the pot and spawn a tcsh shell in it.

Get help

pot command line provides inline help:

# pot help
# pot help create

The first command will show all supported commands.

The second command will show the create command help.