The latest releases of today’s popular Linux distributions include all the tools needed to do interesting things with Linux containers.
For the Makefile MicroVPS project, I set out to build a minimal virtual private server-like environment in a Linux container from scratch.
These are my requirements for the MicroVPS:
Minimal init sequence
Most of what happens in a rc.sysinit file is not needed (or wanted) in a container. However, to work like a virtual private server, the MicroVPS will need some kind of init system. The absolute minimum would be enough to start the network and at least one service.
Native network namespace
The MicroVPS will have a dedicated network namespace. It should be easy to configure using the usual network configuration files, and support DHCP and static networking.
Native package management
The package set installed in the container image will be managed using native tools like deb or rpm.
An automated repeatable build process is a must.
Fast iteration cycle
The building and testing cycle must be fast enough not to drive me insane.
It should be easy to distribute, monitor, and run a MicroVPS container.
In this tutorial, I will show how to use the tools included with Linux to build a virtual private server in a Linux container from scratch, using GNU Make to automate the build process.
An accomplished engineer and technical leader, Joshua Hoffman has trained Ops staff from San Francisco to Hong Kong in practical and efficient high scale system management and automation. Hoffman created Red Hat’s acclaimed Virtual Training platform and Virtualization certification exams. Prior to joining LeaseWeb, Hoffman served as Technical Director at SoundCloud and Tumblr, helping both companies build stable, scalable infrastructure to handle their explosive growth.
Comments on this page are now closed.
©2015, O’Reilly UK Ltd • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • email@example.com