Using chroots in a single Linux Container as an alternative to docker-compose

Talk by Aiden McClelland (details linked in the Reference section below).

The talk is centered around StartOS. An operating system designed to enable non-technical users to self-host open source software.

The OS hosts this via containers. With the base philosophy ‘one container = one service/app’. This makes managing IP addresses easier, and managing resources easier.

The OS uses LXC to manage the containers. Aiden claims this is more composable than docker compose or podman.

There is a root image which all containers share. This image is a nodejs application which runs the package manager. And ultimately runs the application in a chroot.

The service api (inside the nodejs) controls the service. Various init commands, but also package management commands.

The OS mounts the same /dev, /proc and /sys inside all containers. I’m wondering if this is a good idea.

Using a whole bunch of Javascript they managed to expose multiple images inside a single container. While it is easier to make one unified service (which requires multiple components) I’m wondering if this is the way to go. Setting up a docker-compose project with multiple services to offer a uniting application is not too difficult.

Conclusion

Interesting talk to expose different images inside one and the same container. However, I question what the real benefits of this are. Or put otherwise, what downsides of running multiple containers are such that that makes this worthwhile.

I also seriously question the use of Javascript as the managing code.

References

Using chroots in a single Linux Container as an alternative to docker-compose