Docker Containers + VMware VMs: A Match Made in the Cloud?
Docker is making waves. The company’s container technology, based on an old open source model, has raised them millions in just 18 months and is causing some to call virtual machines outdated and ineffective. But just what are containers? With VMware professing its support and intent to integrate Docker with VMware management tools, we interviewed CTO Cortney Thompson to get the lowdown on this hot cloud technology and how it compares to virtual machines.
What is Docker? How is it different from hypervisors?
The difference between Docker and a hypervisor is mainly application portability. With a hypervisor you still need underlying OS, the applications, and all the configurations, tendencies, and baggage that goes with it, something that delivers SaaS or a platform to your client base. With Docker, you just build a container, and you can move it anywhere you want, whether that’s public cloud, private cloud, Amazon, Google, VMware, it doesn’t really matter. You don’t have to worry about the orchestration of the setup and configuration, the dependency hell that you’re usually going through when you’re trying to keep your app running.
So a container could run on any Linux box whereas your hypervisor will limit your choice of environment?
Yeah, so basically you can take the hardware agnostics out, with a hypervisor you’re going to need a 64bit system with X processors or whatever hardware requirement but with Docker as long as the VM or system will run Linux you’re pretty much good to go. Boot2Docker also allows Mac and Windows installations now.
A Docker container can also run within a VM, which is what VMware is pushing as admins can control the infrastructure through VMware tools while developers can run their apps on Docker, allowing kind of a best of both worlds approach where everyone can use their preferred platform.
Are there cases where a container is better than a VM?
Specifically Web 2.0 applications, where you’re building an application and it’s your code, you know exactly what it needs and have specific requirements, say an Apache or Tomcat server. These are very specific use cases for containers vs. full VMs.
Are virtual machines or containers easier to troubleshoot and update?
An OS or hypervisor management software would give you tighter integration for third party tools like backup or disaster recovery software. Additionally, because containers run on a shared operating system, they can be difficult to isolate problems as applications that are causing performance issues or crashes start to bleed into other apps. This isolation problem also comes into play for updates, as the entire instance and apps must be updated at the same time.
Will Green House Data support Docker/containers?
We don’t have immediate plans for a managed service based around containers, but IaaS users are free to run them to their hearts content. Down the road, we might roll it into a workflow or Platform as a Service, where include Tomcat platform with Docker or containers ready.
As VMware integration runs deeper with Docker, we’ll see more developers using combinations of containers and VMs as well. This can result in the speed of container deployment while retaining VM benefits like security, portability of the entire infrastructure, and management from a single portal.