LXC (Linux Containers) is an operating-system-level virtualization environment for running multiple isolated Linux systems (containers) on a single Linux control host. Nothing completly new, but is reaching more and more interested also from big vendors (like VMware with cloud native applications or Microsoft with their own container implementation for Windows).
CoreOS is a minimal Linux operation system optimized to run Linux containers, such as Docker and rkt. It has a fully automated, reliable, and stable update system but without a complete package manager. By default, it is designed to build powerful and easily manageable server clusters architecture.
CoreOS is designed to work in a clustered form, but it also works very well as a single host. It is very easy to control and run application containers across cluster machines with fleet and use the etcd service discovery to connect them as it shown in the following image:
CoreOS Essentials book is an interesting set of resources and reference to use CoreOS and better understand Linux containers.
Whether you are a Linux expert or just a beginner with some knowledge of Linux, this book will provide you with step-by-step instructions on installing and configuring CoreOS servers as well as building development and production environments. You will be introduced to the new CoreOS rkt Application Containers runtime engine and Google’s Kubernetes system, which allows you to manage a cluster of Linux containers as a single system.
The book it’s almost shor (just 132 pages) but it’s rich of examples and line of code.
- Chapter 1, CoreOS – Overview and Installation, by using you need to have VirtualBox, Vagrant, and git. This part it’s highly depend on the used tools, but has also some good general information.
- Chapter 2, Getting Started with etcd, explains what etcd is and what it can be used for. etcd is the CoreOS’s central hub of services, which provides a reliable way of storing shared data across cluster machines and monitoring it.
- Chapter 3, Getting Started with systemd (an init system used by CoreOS for starting, stopping, and managing processes) and fleet (a cluster manager that controls systemd at the cluster level).
- Chapter 4, Managing Clusters, is a guide to setting up and managing a cluster.
- Chapter 5, Building a Development Environment, shows you how to set up the CoreOS development environment to test your Application Containers.
- Chapter 6, Building a Deployment Setup, helps you set up code deployment, the Docker image builder, and the private Docker registry.
- Chapter 7, Building a Production Cluster, explains the setup of the CoreOS production cluster on the cloud.
- Chapter 8, Introducing CoreUpdate and Container/Enterprise Registry, has an overview of free and paid CoreOS services.
- Chapter 9, Introduction to CoreOS rkt, tells you what rkt is and how to use it.
- Chapter 10, Introduction to Kubernetes, teaches you how to set up and use Kubernetes.
All the chapters are almost short because the authors have choose to not print all the scripts and files that we are going to use. Each chapter have a set of scripts and other files. They are very well-commented, and it should not be too difficult to understand them. But provide part of logic behind those script was probably a better idea.
For sure is not a book that you can simple read and understand it, you have to practice the examples and learn from them. The lab part, in this case is mandatory but it’s almost well designed.
The main limit could be too strictly related with the selected and used tools to be not general or not (completely) applicable to other Linux container, but if you plan to make a practical and by example book, you have to make some choices.