(Update) We’ve released new training material on Docker, including the Cloud Academy’s Docker in Depth Learning Path. This learning path is designed to teach you all about Docker starting from the individual container and progressing to the continuous deployment of an application in AWS. The Learning Path comprises of video Courses, Hands-on Labs, and Quizzes to test your skills. Visit the Cloud Academy’s Training Library for all our latest content on Docker.
There is a software that is hitting it really big nowadays, and it is Docker. For the very few who still don’t know what Docker is, it is a software layer that works on top of the well-known and famous LXC to automate the deployment of applications inside insulated software containers. Being self-contained and self-sufficient, the container stacks together all the dependencies needed to run the application without hiccups. Interestingly, each container starts from an image that can be customized and distributed.
It comes as no surprise that Docker is so hot nowadays, and thanks to the feature we just talked about, several *aaS platforms spawned to help users hosting and deploying Docker images and containers in a full- or partially-managed environment and at a very low cost. Of course, you can still use Docker on any machine supporting the software, but if you are just interested in deploying your app as quickly as possible, dropping all the administration burden, these services can come in handy. So, let’s see which are the best Docker Hosting Services around.
dotCloud has been the incubator of Docker, which started as an internal project by Solomon Hykes. Indeed, dotCloud is probably the oldest docker hosting service around. It’s an advanced PaaS service to deploy and manage a web app with scaling features and some management of the underlying infrastructure. dotCloud has a dedicated CLI written in Python and available via pip. Once installed, you can write a simple text file describing your architecture according to your needs, like a WSGI-enabled server, a MongoDB database, etc. Once complete, you just push the configuration file on your application (that is the most basic element of the dotCloud stack), and the resources you asked for getting provisioned and made available to you. Other commands of the dotCloud CLI allows you to control the application, to set up scaling rules, to monitor it, and enable a series of ancillary services like automated backups, SMTP servers, Build Hooks, and much more.
The set of features that dotCloud can expose is quite rich, and its CLI, despite being a little tough for newcomers, can be extremely faster and more powerful than any GUI once you learn to master it. The cost of a standard dotCloud applications can vary a lot, depending on the configuration you choose and the services you need. Fortunately, a nice calculator is available to get an idea of how much expensive your configuration is.
Similarly to dotCloud, Tutum has a neat CLI interface as well. You can use it to control both the deployed applications and the ones you are working on locally. The interesting feature about Tutum is that it ships a full-featured web GUI to control any aspect of the application, something that those who are less confident with CLIs will definitely appreciate. Not a surprise for a company whose tagline is “We hate headaches“! Another nice pro of Tutum over dotCloud is the possibility of having a free trial period to test the service before doing things seriously. Also, Tutum provides the so called “Jumpstarts“, that is a set of common open-source applications optimized and containerized to run in Tutum in a few seconds. And if you have a huge set of Docker images you want to keep safe, you can push them in your private Docker images’ registry, which Tutum makes available to any users. As a cherry on top, Tutum also provides a quite big set of APIs.
All this good comes at the price of 4 dollars per month for the most basic provisioning up to the 64$ for the so-called XL solution. All in all, Tutum gives extra features but lacks some of the detailed configuration and scaling options that dotCloud provides. If you are scared of CLI, or costs are a concern, Tutum might be the best choice for you.
The killer features of StackDock, the Copper’s brand for Docker hosting services, is the availability of SSD drives at a quite cheap price. Actually, StackDock’s website is extremely essential and there are no links to documentation or a complete set of the features, so it’s not easy to understand what are the pros and cons of this platform. Nevertheless, the price of 5 dollars a month for 1 core CPU with 1 GB of RAM and 20 GB of SSD is extremely interesting, and probably worth a try. The interesting thing about Docker is that Docker images have no vendor lock-ins, and can be imported and exported easily, so it’s not difficult at all to migrate an existing application among different providers.
In any case, StackDock can be really fast thanks to its SSD-based infrastructure, and despite it hasn’t a dedicated CLI tool, its control panel is enough to deploy and manage your stuff. If you need a basic, no-frippery, quick and cheap service to deploy your Docker application, this might be your choice.
Last but not least, another service you should take in due consideration is Quay.io. Recently acquired by CoreOS, Quay.io provides secure hosting for Docker private repositories, hence providing a service quite different from the ones we have seen above. As you can imagine, it is a service targeted at companies who have special needs privacy- and security-wise, but quite interestingly they provide free public repositories too. The service provided by Quay.io is really good and rich of features. The web GUI is very complete and versatile. You can control any aspect of your repositories from there, and the GUI even provides the history and branches of each of them, even with the possibility of comparing and making diff among repositories.
Many features are clearly targeted at companies and complex organizations, like tools for fine-grained control of resources and a rich set of logs. Interestingly enough, Quay.io is the only service of the 4 we have seen providing a guided and interactive tutorial to get you started.