Docker’s new container technology is offering a smart, more sophisticated solution for server virtualization today. The latest version of Docker, version 0.8, was announced couple of days ago.
Docker 0.8 is to focus more on quality rather than on features, with the objective of targeting the requirements of enterprises.
According to the software’s present developmental team; many companies that use the software have been using it for highly critical functions. As a result, the aim of the most recent release has been to provide such businesses top quality tools for improving efficiency and performance.
What Is Docker?
Docker is an open source virtualization technology for Linux that is essentially a modern extension of Linux Containers (LXC). The software is still quite a young initiative, having been launched for the first time in March 2013. Founder Solomon Hykes created Docker as an internal project for dotCloud, a PaaS enterprise.
The response to the application was highly impressive and the company soon reinvented itself as Docker Inc, going on to obtain $15 million in investments from Greylock Partners. Docker Inc. continued to run their original PaaS solutions, but the focus moved to the Docker platform. Since its initiation, over 400,000 users have downloaded the virtualization software.
Google (along with couple of most popular cloud computing providers out there) is offering the software as part of its Google Compute Engine though still nothing from major Australian companies (yes, I’m looking at you Macquarie).
Red Hat also included it in OpenShift PaaS as well as in the beta version of the upcoming release Red Hat Enterprise Linux. The benefits of containers are receiving greater attention from customers, who find that they can reduce overheads with lightweight apps and scale across cloud and physical architectures.
Containers Over Full Virtual Machines
For those unfamiliar with Linux containers, they are called the Linux kernel containment at a basic level. These containers can hold applications and processes like a virtual machine, rather than virtualizing an entire operating system. In such a scenario the application developer does not have to worry about writing to the operating system. This allows greater security, efficiency and portability when it comes to performance.
Virtualization through containers has been available as part of the Linux source code for many years. Solaris Zones was pioneering software created by Sun Microsystems over 10 years ago.
Docker takes the concept of containers a little further and modernizes it. It does not come with a full OS, unlike full virtual machines, but it shares the host OS, which is Linux. The software offers a simpler deployment process for the user and tailors virtualization technology for the requirements of PaaS (platform-as-a-service) solutions and cloud computing.
This makes containers more efficient and less resource hungry than virtual machines. The condition is that the user must limit the OS host to a single platform. Containers can launch within seconds while full virtual machines can take several minutes to do so. Virtual machines must also be run through a hypervisor, which containers do not.
This further enhances container performance as compared to virtual machines. According to the company, containers can offer application processing speeds that are double than virtual machines. In addition, a single server can have a greater number of containers packed into it. This is possible because the OS does not have to be virtualized for each and every application.
The New Improvements and Features Present In Docker 0.8
Docker 0.8 has seen several improvements and debugging since its last release. Quality improvements have been the primary goal of the developmental team. The team – comprising over 120 volunteers for the release – focused on bug fixing, improving stability, and streamlining the code, performance boosting and updating documentation. The goals in future releases will be to keep the improvements on and increase quality.
There are some specific improvements that users of earlier releases will find in version 0.8. The Docker daemon is quicker. Containers and images can be moved faster. It is quicker building source images with docker build. Memory footprints are smaller; the build is more stable with fixed race conditions. Packaging is more portable for tar implementation. The code has been made easier to change because of compacted sub-packaging.
The Docker Build command has also been improved in many ways. A new caching layer, greatly in demand among customers, speeds up the software. It achieves this by eschewing the need to upload content from the same disk again and again.
There are also a few new features to expect from 0.8. The software is being shipped with a BTRFS (B-Tree File System) storage driver that is at an experimental stage. The BTRFS file system is a recent alternative to ZFS among the Linux community. This gives users a chance to try out the new, experimental file system for themselves.
A new ONBUILD trigger feature also allows an image to be used later to create other images, by adding a trigger instruction to the image.
Version 0.8 is supported by Mac OSX, which will be good news for many Mac users. Docker can be run completely offline and directly on their Mac machines to build Linux applications. Installing the software to an Apple Macintosh OS X workstation is made easy with the help of a lightweight virtual machine named Boot2Docker.
Docker may have gained the place it has today partly because of its simplicity. Containers are otherwise a complex technology, and users are traditionally required to apply complex configurations and command lines. Docker makes it easier for administrators, with its API, to easily have Docker images inserted in a larger workflow.
It is currently being developed as a plug-in that will allow use with platforms beyond Linux, such as Microsoft Windows, via a hypervisor. The future plans for the developmental team is to update the software once a month. Version 0.9 is expected to see a release early in March, 2014. The new release may have some new features if they are merged before the next release, otherwise they will be carried over to the next release.
Docker is expected to follow Linux in numbering versions. Major changes will be represented by changing the first digit. Second digit changes signify regular updates while emergency fixes will be represented by a final digit.
Customers looking forward to the production ready Docker version 1 will have to wait until April. They can also expect support for the software as well as a potential enterprise release. There are also attempts by the team to develop services for signing images, indexing them and creating private image registries.
Give it a try!