Richard Bucker

LXC Containers Review

Posted at — Aug 7, 2022

If you’ve used or are proficient with Docker, Rkt containers or even virtual machine with some basic automation or orchestration then you’ll hate LXC containers.

ChromeOS

I started playing with LXC containers about 8 hours ago when I thought that ChromeOS' multiple linux containers supported different linux distros. Well it does and does not. First of all the documentation is far from current. Many still refer to BETA and experimental. So either it does not work, missing another feature flag, or anything else from door #3.

Pop_OS / Ubuntu

I spent most of my time trying to get LXC to work on popos/ubuntu. That was a complicated failure because they talk about LXC Unpriviledged and LXC Priviledged. But when you’re used to “just do it” of the Docker CLI then the amount of work you have to do to make LXC work is seriously scarey. It would be one thing if it was sensable configuration stuff but it’s not. It’s all 10th level ninja foo… as I realized when I tried to start my second container.

Now what?

I really hate docker. I mean it was a good idea when it was described as just scripts for a linux jail but then when they went into docker swarm I started to flashback to my erlang clusters. Just more complicated than it needed to be.

The bottom line is…

Stay away from

Most projects only have a few conscurrent users and the simplest tools get the job done. If the project is successful you’ll have plenty of time to start all over with everything you’ve learned… and you will learn.

Update

ok, LXC was a pain in the ass. But then there is LXD. LXD seemed to work right away on my Pop_OS/Ubuntu machine. It’s still a pain in the ass and limited to Linux quests. At least the LXD VM examples did not run a BSD as a guest on Linux. But at least I could run multiple containers and VMs concurrently. And it seems I could do it from shell scripts.

While QEMU has not ben tested yet… and while some complain about performance… it’s simple to use and scales with hardware. NOTE the LXD VM solution uses QEMU. Also LXD is installed in the ChromeOS configuration. Importantly LXD uses LXC and LXCapis; it’s somewhat easier to reason through.

References