Like a virtual machine, a container can hold an application, freeing the developer of the application from worrying about writing to the underlying system software. Unlike full virtual machines though, a Docker container does not include a full OS, but rather shares the OS of its host -- in Docker's case, Linux.
As a result, containers can be faster and less resource heavy than virtual machines, as long as the user is willing to stick to a single platform to provide the shared OS. A full virtual machine may take several minutes to create and launch, whereas as a container can be initiated in a matter of seconds. Containers also offer superior performance for the applications they contain, compared to running the application within a virtual machine, which incurs the overhead of running through the hypervisor.
Docker is estimating that an application running in a container can go twice as fast as one in a virtual machine. Also, more containers can be packed into a single server, because the OS is not duplicated for each application.
Turnbull suggested the interest that Docker has generated is due in part to its simplicity. It provides an API that administrators can use to weave Docker images into a larger scripted workflow.
Containers "are a complex technology and require a complex set of configuration and command line use. We provide an interface that wraps all around that and abstract it away for you," Turnbull said.
The development team for the software, which included more than 120 volunteer contributors for this release, concentrated on fixing the bugs in the software, as well as cleaning up the code, improving stability, catching up on the documentation, and boosting performance.
The developers "will continue to focus on quality until it becomes a defining characteristic of Docker," Hykes wrote.
Many of the improvements in version 0.8 have been around making the software go faster. Images and containers can be removed from a system much more quickly. The Docker daemon starts and stops much more quickly. Building source images is quicker. A new caching layer, which was the most requested feature, eliminates the need to upload an image from disk again, if it hasn't been changed since the last time it was called.
Other improvements include a smaller memory footprint, the ability to create a larger number of containers and the elimination of several race conditions, which should make the software more stable.
The developers did save some time for new features, however.
For instance, Docker 0.8 client provides a small virtual machine, called Boot2Docker, that allows a developer to build a Docker container on an Apple Macintosh OS X workstation.
"It's a big step forward for developers who are doing local testing and development with Docker," Turnbull said. "Developers on OS X can make container, and connect to a Docker server and launch the container from there."
Originally designed to run on Linux, the software is being reconfigured as a plug-in architecture that could allow it to work on other platforms as well, such as Microsoft Windows, through the use of a hypervisor.
The software also supports, for the first time, the experimental BTRFS (B-Tree File System).
Going forward, Docker will be updated once a month, with the next release, 0.9, issued in early March. New editions may or may not have major new features.
"If a feature is merged before the release date, it gets released. Otherwise, the next merge window is only a month away," Hykes wrote.