Run containers on bare metal already!
Why Hacker News recommends it
HN commenters recommend it as an engaging and informative explanation of why containers on VMs waste resources and hurt performance.
What it is
Bryan Cantrill's Velocity NYC 2015 talk argues for running containers directly on bare metal rather than layering them on virtual machines. He covers the history of containers and how SmartOS runs Linux workloads via syscall emulation.
Recommended by 3 HN commenters across 3 different months, 2015 to 2025.
What Hacker News said
Strong rec kbenson · 2017-11 · on “My VM is lighter and safer than your container”
SmartOS's LX branded zones seem kind of cool to me, and may hit an interest point for you. Basically, SmartOS is an OpenSolaris variant where they use Solaris Zones for docker images, but they've implemented a Linux syscall table API so you can create Linux "compatible" containers from a Solaris kernel (and also full access to ZFS, etc). You can see a talk here[1] where Bryan Cantrill goes over the reasons you might want to use containers, SmartOS and how LX branded zones. Warning though, he's an extremely engaging speaker, so not only are you likely to watch all of that 40 minute talk, but you might feel like binging on some other talks of his, so here you go.[2] 1: [this video] 2: [LINK]
Recommends dpeterson · 2015-11 · on “EC2 Dedicated Hosts”
I have run containers on bare metal and in Amazon. Performance can be noticeably slower in Amazon on machines with similar specifications. A detailed explanation why is in this informative video by Bryan Cantrill [this video] . It is a talk about how layering containers on top of virtual machines is a recipe for poor performance and wasted resource utilization. He equates it to developers “being given fire, then proceeding to put the fire out.”
Recommends cpeterso · 2015-11 · on “What is a 'unikernel'?”
Unikernels : hypervisor :: processes : traditional operating system Joyent CTO Bryan Cantrill gave a great talk at Velocity NYC 2015 about the history of containers (going back to March 18, 1982 when Bill Joy added the chroot system call) and the problems of running containers on operating systems in VMs on hypervisors: "Stop killing kittens and melthing the ice caps: Run containers on bare metal already!" [this video]
Recommends kbenson · 2025-11 · on “Immutable Software Deploys Using ZFS Jails on FreeBSD”
It's all just history now for all I know, but there was work in the past to make Linux containers work on a Solaris fork (SmartOS, specifically) by emulating the Linux syscall table and presenting that to the containers. Joyent did work on this (alas, and there's an excellent and entertaining talk from Bryan Cantrill[1] that goes over it. I imagine FreeBSD could do something similar if they aren't already. IIRC FreeBSD has a Linux emulation layer (but I don't know how much attention it still gets), and it's had containerization primitives longer than linux, so some amount of filling in the gaps in containerization features and syscall tables (if needed) could possibly yield an OCI compatibil
Cites kbenson · 2015-11 · on “What is a 'unikernel'?”
From a recent post, here's a talk[1] about containers where they use SmartOS (Solaris/IllumOS derivative) to containerize Linux by just implementing the syscall table. The future of hosting legacy apps might be providing legacy interfaces on modern OS's (IMO). 1: [this video]
Cites bradgessler · 2016-04 · on “Challenges of Deployment to ECS”
The biggest missed opportunity of ECS that AWS missed was completely hiding the complexity and concerns of managing EC2 instances. If you use ECS you have to deal with the complexity of both and manage those resources. The dream being sold by the container industry is that you don't really care about the machines you're containers are running on. ElasticBeanstalk gets this right because they hide that concern. ECS is akin to selling git on top of SVN. It doesn't really make sense. Bryan Cantrill gave a talk about the craziness of running containers on VMs at [this video] .
Cites Annatar · 2016-07 · on “Why we use the Linux kernel's TCP stack”
> What most people call "containers" was always about virtualization (ie isolation), and the isolation primitive in the Linux kernel is namespaces. There is no isolation with cgroups in Linux, that is the crux of the matter: [this video] since containers in Solaris existed before cgroups and before the entire Linux hype, and you specifically adress my "misunderstanding" (of hype), you compel me to correct on terminology: containers are resource constraints, while technology like LXC and OpenVZ provide the lightweight virtualization and isolation , a very important distinction (full virtualization is achieved via XEN and KVM on GNU/Linux). Conceptually, as a resource constraint, containers are in
Cites drbawb · 2023-07 · on “We Replaced Firecracker with QEMU”
The second I read "shared block cache" my brain went to containers. If you want data colocated on the same filesystem, then put it on the same filesystem. VMs suck, nobody spins up a whole fabricated IBM-compatible PC and gaslights their executable because they want to. [1] They do it because their OS (a) doesn't have containers, (b) doesn't provide strong enough isolation between containers, or (c) the host kernel can't run their workload. (Different ISA, different syscalls, different executable format, etc.) Anyone who has ever tried to run heavyweight VMs atop a snapshotting volume already knows the idea of "shared blocks" is a fantasy; as soon as you do one large update inside the guest