FreeBSD is the original container engine - although, for the sake of completeness, we should count Solaris "zones" and call it a tie ...
I think there is a cultural and temporal connotation of Docker - and the use-cases that it typically enabled - that makes it seem very different than 'jail' but make no mistake: jail did all of those things and more, many years earlier.
The VPS, as we currently think of it, was built first[1] on top of FreeBSD and jail.
[1] JohnCompanies announced beta availability of "server instances" on 303 and cDc mailing lists in mid 2001. Someone else coined the term "VPS" a bit later ...
[0] http://linux-vserver.org/Frequently_Asked_Questions#Is_this_...
I'm sure you could throw away the isolation bits and it would still be as popular.
[1] Totally scientific figure, of course.
Also, at this point it would need to support the same image format and be very obviously better to see wide adoption.
FreeBSD jails are supported by HashiCorp's Nomad [1], and their Consul + Vault are in FreeBSD ports
The tool mentioned in the article, Bastille, would be used to install popular software into jails.
Also ansible works well for pushing software into FreeBSD. There is even an ansible role for nginx that works with FreeBSD that's maintained by nginx team.
FreeBSD jails do not insist to have 'one service per jail', shell access is fine too. A jail is pretty well functioning 'compartment' within an OS.
Jails work very well with ZFS, one elegant feature, is that one can create a 'base jail', create a zfs snapshot with it, and then copy it over (using zfs) to any new jail created. Sort of like a base template. [2] This makes spawning new jails with base software install rather quick.
I do not know if FreeBSD has some interesting Linux features like io uring.
On the other hand, Netflix is achieving an impressive 200 Gb/s serving video traffic [3] using FreeBSD
- - - Just wanted to mention, that OpenBSD is different than FreeBSD, different kernel, many different user space programs, different team, different primary goals, different hypervisors that they have built-in, etc.
Same statement for Dragonfly BSD, same for NetBSD.
With regards to issue with OpenBSD 'on a laptop once'
I am using 5G wifi running OpenBSD 6.6 on a laptop, not using USB adapter. The driver I am using is iwn0. Works great. Perhaps we have different laptops...
[1] https://nomadproject.io/docs/drivers/external/jail-task-driv...
[2] https://www.cyberciti.biz/faq/how-to-configure-a-freebsd-jai...
Not all applications require Docker.
https://en.wikipedia.org/wiki/SCO%E2%80%93Linux_disputes
Earlier a USL (Unix System Lab) lawsuit went after some BSD stuff:
https://en.wikipedia.org/wiki/UNIX_System_Laboratories,_Inc.....
I also find it weird that each jail has its own copy of all of userland. It's a lot easier to use macOS sandboxing, certainly it saves more disk space. And I feel like I'll forget to update them.
In theory, you could implement a lot of the Docker Engine API for FreeBSD and on the backend use jails instead of namespaces/cgroups and ZFS if you wanted implement the same layering. Some of the security and cgroup limits may not be implementable on FreeBSD, but with the Linux binary emulation layer, you should still be able to run a lot of containers without modification (unless they need certain filecaps or privileges).
I had OpenBSD on a laptop once, but without 802.11ac support, you'll either have to downgrade the Wi-Fi card in newer laptops or use a USB adapter.