ZFS Storage
Configure Podman to use ZFS on FreeBSD for optimal container storage.
Benefits
| Feature | Benefit |
|---|---|
| Copy-on-write | Fast container creation |
| Snapshots | Easy backup/restore |
| Compression | Smaller storage footprint |
| Checksums | Data integrity |
Understanding Storage Separation
When running containers on FreeBSD, it is essential to distinguish between engine storage and application data:
- Podman Engine Storage (
/var/db/containers/storage): Where Podman stores downloaded OCI layers, images, and jail root filesystems. Managed entirely by Podman. Never place personal configuration files or Compose directories here. - Persistent Application Data (
/containers): Where your application configuration files (likeCaddyfile), databases, and Compose files live.
1. Engine Storage (Podman Graphroot)
Create a dedicated dataset for Podman's internal image layer storage:
Configure Podman
Edit /usr/local/etc/containers/storage.conf:
Verify Configuration
Expected output:
2. Application Data & Config Storage
Keep your container configuration and persistent volumes on a separate dataset. In Daemonless documentation, /containers is used as the standard convention, but you can place this anywhere on your filesystem:
Troubleshooting
"driver zfs is not supported"
Ensure:
- Your ZFS pool is imported and healthy
- The
graphrootdirectory exists and is a ZFS dataset - You are running Podman as root