Sashkin - Fotolia

Adopt a container platform that best meets your needs

Container platforms, like Docker and Windows Server, all have their strong suits; be sure to research OS support, security, portability and community support before adoption.

Generally speaking, containers are a part of the OS rather than a separate layer, like with the hypervisor. But effective and portable container use relies on a common tool set and mechanism for packaging and distribution, so organizations must adopt a container platform for that task.

Docker containers

Docker is probably the most recognized and widely used open source application container platform. Docker was originally designed to run on Linux, but it has since been extended to support Windows Server 2016 and OS X through a Linux VM. Docker automatically packages and configures the container environment, ensuring that all of the libraries and dependencies needed to run the application in Linux or Windows Server are included in the container. Developers can build, test, iterate and deploy container applications to clusters without worrying about issues like language conflicts or version compatibility problems. It's this standardized packaging that makes Docker containers readily portable, sparking a renewed interest in container technology.

Windows Server and Hyper-V containers

The release of Microsoft Windows Server 2016 included Windows Server Containers, which are designed to extend the Docker API and tools to Microsoft Windows environments. Windows Server 2016 also provides Hyper-V containers. Although this isn't platform-compatible yet -- Linux containers won't run on a Windows Server host and vice versa -- the Docker client can manage Linux, Windows Server Containers and Hyper-V containers. Windows Server containers are similar to Linux containers, with fast startup and kernel sharing, but they should only host applications that the OS trusts. Hyper-V containers essentially create a VM and then run containers within that VM. This provides more isolation and is usually best when running sensitive or critical workloads.

CoreOS Rocket

There are other lesser-known container platforms. CoreOS Rocket -- commonly referred to as rkt -- is a command line-based application container platform for Linux. Though Docker has the lion's share of the container market, rkt is one of the largest competitors to Docker. Rkt can run Docker and Open Container Initiative images and is noted for security with support for Security-Enhanced Linux and trusted platform management. Rkt integrates with system, upstart, multiple execution engines and cluster orchestration tools, like Kubernetes and Nomad.

Other container platforms

Other container platforms include Linux Containers (LXC), LXD and OpenVZ. Docker was originally based on LXC, but LXC is now an aging Linux-only platform that was never truly popular in production environments. LXD is a little younger. Canonical -- and its Ubuntu Linux version -- is the main sponsor for LXD, building on LXC and integrating with OpenStack to provide a system container that can host a complete OS inside a container. This makes LXD closer to a hypervisor like KVM, but Docker containers can be run atop that OS within the container. Finally, OpenVZ was developed by Virtuozzo and is probably the oldest of the system container platforms.

Choosing a platform depends on careful consideration of OS support, security, portability, community support and other factors. But don't make decisions based on descriptions or reputation alone. Hands-on testing and evaluation are central parts of container platform adoption. Test each candidate in a lab environment, try a variety of applications, see how each application runs and moves between platforms and evaluate the ecosystem to determine vendor and community support.

Next Steps

Decide between bare metal or VMs for Docker containers

Backup and restore data with Docker containers

Run containers using hyper-converged infrastructure

Dig Deeper on Application virtualization