We all know that Docker is simple to get up and running on our local machines. But, seamlessly transitioning our honed application stacks from development to production was a missing piece of the puzzle until the past six to twelve months.

Now there are so many specialized and optimized Docker hosting services available, it’s high time for a review to see what’s on offer.

One of the complexities with comparing Docker hosting options is that many are offering management and orchestration tools on top of actual hosting providers. Not all make it clear which provider they use, when or where, and this may or may not be an important issue to you. For this reason, I haven’t included services such as Deis Workflow, Docker Cloud, or ContainerShip as they don’t claim to be or offer integrated hosting services.

While I will include services that host elsewhere, these costs are included in the price.

Of course, it’s possible to just install Docker on a Linux-based VM on any hosting provider, and I could produce pages of profiles of "standard" hosting companies. Instead, I’ve tried to focus on services that offer something else on top of simple hosting to make your Docker experience smoother and enhanced.

Docker Machine

For many hosting providers, the easiest way to deploy and manage your containers is via Docker Machine drivers. Unless these hosts offer anything extra on top of the driver, I won’t list them separately. Currently, these include:

More are likely to follow soon, and you may be able to use the generic driver for other hosts.

Amazon Web Services (AWS)

AWS is the biggest cloud-hosting service on the planet and offers support for Docker across most of its standard EC2 machines.

AWS then offers the EC2 container service (ECS) that exposes a set of API calls for managing containers installed across your EC2 instances. ECS isn’t charged separately, but it sits on top of any other AWS resources your containers are using. This means that containers have access to the wide variety of services that AWS offers, including storage and scaling.

Carina

Rackspace offers a Docker Machine driver, but it also has a container hosting service. Carina lets you create Docker Swarm-like clusters and push your containers from development to production. For example:

carina create chriscluster --wait --nodes=3 --autoscale

The process still seems a little convoluted, but it’s still in public beta. We’ll see improvement over time.

Sloppy.io

This Docker hosting service launched just this month! It provides CLI tools, web interface, persistent storage between container launches, and statistics. Application stacks are constructed through a JSON file. Thanks to the underlying Mesos integration, Sloppy allows you to set machine specifications. For example:

Giant Swarm

This is a new startup that likes to keep it simple and focus on providing a solid product and support. Giant Swarm doesn’t use VMs and will only deploy your containers and services to private AWS machines and their own bare metal services.

Exact pricing is a little unclear, and the service is invite-only right now, but they are open about their infrastructure, with several custom components available on GitHub. Setup is via a command line tool, with applications defined by a JSON file that resembles a Docker Compose file. For example:

Google Compute Engine (GCE)

Kubernetes underpins Google’s container hosting and management service, their own open-source project that powers many large container-based infrastructures. The containers sit on top of Google’s own hosting service, one of the most reliable cloud-hosting services available. GCE provides a container registry and (in beta) a build service that will create Docker images from code hosted in Google’s Cloud.

Microsoft Azure

While AWS looms over all other cloud providers, Azure is actually the second most popular. Backed by a large company, it’s not going anywhere anytime soon and is your best source of Windows-based VMs. Besides a Docker Machine driver, pre-built VM extensions are also available.

Heroku

Most of Heroku’s workflow is triggered by git push commands. These are still possible with a Docker setup, but an alternative is available via a Docker Compose plugin for pushing your containerized applications straight to the service. Heroku also maintains Docker images for most of the languages it supports.

Quay

Quay will work with many common developer tools to allow for fully automated workflows, has CLI and web tools available for managing your container deployments, as well as logging and collaboration tools.

So if it’s time to move on from playing with Docker in development to integrating it with production, these are the hosting services to check out. Got something to add to the list? Let me know in the comments.