Now in beta, the CoreOS Linux distribution uses Docker to create a distribution with a smaller memory footprint and fewer package-management hassles

Just when you think all the possibilities for innovation with Docker, the now-ubiquitous containerization system for applications, have been used up, someone comes along to try to prove you wrong. This time, it's an entire operating system with Docker as a fundamental component: CoreOS.

CoreOS has just entered its first proper beta release, and the concept is simple: It's a Linux distribution that uses Docker to handle how applications and services are added to the system and managed on it.

CoreOS uses containers to bundle applications -- for example, a database server with all its middleware, or an application with its runtimes. Theoretically, this removes the snarl of dependencies and other headaches that typically are associated with package management on Linux. In fact, CoreOS deliberately doesn't include a package manager; its philosophy is that any software on CoreOS should be run through a container, and its creators claim that this slimmed-down approach also allows a CoreOS installation to use far less memory than a typical Linux distribution.

CoreOS also uses containers to handle how services and apps deployed across a cluster run, so all machines in the cluster can share a single init system. Apps can be distributed across machines to ensure that, for instance, original containers and their backup images are stored in separate physical locations. The deployed apps also can be self-configuring by way of CoreOS's etcd system; apps can store their settings in a distributed fashion and recover gracefully when their attendant systems go offline. Etcd also controls whether the contents of given containers are mutable or immutable.

The CoreOS team claims it's made 150 releases of the product during its nine-month alpha test period, and one of the last features slipped in before the beta feature freeze is Locksmith, a way to control how rolling reboots take place in CoreOS clusters so only a certain number of machines (or only one at a time, if that's your preference) are taken offline.

These additional ingredients hint at how Docker by itself, in its current state, doesn't address some of the issues that come with managing Linux systems, such as orchestration or full-on replacement of configuration- and orchestration-management solutions like Chef, Puppet, or Salt. Such things can be done in concert with Docker by way of other solutions, though.

How Docker evolves beyond its eventual 1.0 release will influence the culture of tools and development technologies that already have sprung up around it. It isn't likely that Docker will be revised in such a way that those things break. It makes more sense that it would evolve in complementary ways.

Some of the features announced for Docker's current 0.11 release hint at, for instance, SELinux support. But some other theoretical ones hint at ways in which projects like CoreOS could be expanded further. For example, Docker could, in time, be bound not only to Linux containers but also to hypervisors like KVM or Xen.

Finally, although CoreOS's initial target is cloud and SaaS providers, it isn't hard to see how the technologies being developed within it would have real utility in enterprises generally, just as Docker has.