Docker could be the feature that the cloud is waiting for and it has just reached a full version 1, which means it is ready for front line duty. It is rapidly become the way to build cloud apps that run anywhere.
Docker is an open source container that has been working its way towards a full release for over a year. Despite the warnings, there are lots of companies that have chosen to ignore them, and already run Docker in a production environment - which goes to show that we are all desperate for the facilities it provides.
If you are wondering what the fuss is all about then it is worth saying that Docker is a way of packaging an app complete with all it needs to function. This is similar to the idea of using VM as a container for your app, but this has the disadvantage of bundling and entire operating system in with your app.
If you were to trim down the operating system so that it just had the features that your app needed then you would be heading in the direction of a lightweight container. However, Docker not only trims the support libraries and infrastructure, it also throws out most of the operating system support. A Docker container can share the kernel services with other Docker containers.
The problem that Docker is attempting to solve isn't just easy deployment. Docker allows you to run apps in the cloud without having to setup VMs or operating systems to support them. You can take code that you run locally and transfer it to a remote cloud hosting service without making changes. You can run multiple copies of the app and expect it to cope with changes to the infrastructure. In short, you don't care if your app is running on Amazon or on Google Compute Engine.
You can find out more about Docker in the following video:
Version 1 runs on all major Linux distributions, Ubuntu, Fedora, Suse, Red Hat etc. It can even be run under OS X and Windows.
The latest version has a new instruction, COPY, which copies files and folders from the build context, but most of the improvements are in ops. You can now pause and unpause containers, the security profile has been improved, and the device mapper now supports XFS and physical devices.
The improvements may seem small, but the most important thing is that Docker is now ready for the production environment. To prove how grown up it is, IANA has allocated HTTP port 2375 and HTTPS port 2376 for Docker API traffic.
You can use Docker on your own machines, via a cloud service, or via Docker Hub which provides one free private repository and as many public repositories as you care to create. You will also find lots of Docker images ready to use.