With the general availability of Windows Server 2016, Windows shops that make the leap to the new OS will have...
access to Docker containers. Administrators entering this brave, new world of virtualization will need to know the basics of containers -- and how they fit with Docker Datacenter, the tool for creating and maintaining Docker hosts and containers.
Containers are typically the domain of application developers, but the operations team -- the ones who build and maintain the infrastructure for developers -- can benefit from learning how Docker Datacenter and containerized apps fit in the data center.
Docker and Microsoft Windows
Docker is an open source technology that uses OS virtualization to support lightweight, isolated application environments. For example, imagine that a developer needs to test a PHP/MySQL web application for compatibility with several different versions of PHP, MySQL and Apache web server. Traditionally, the developer would ask the IT operations staff to build separate virtual machines that contain each server version. This takes a lot of effort, time, computing power and disk space. It's not very agile.
Because Docker virtualizes each application along with its dependencies, you can spawn a number of different containers -- each running target app versions -- in a matter of seconds. Moreover, because Docker images are defined in text-based source code, developers can apply version control and rollback to Docker images. In other words, if there's a problem with a container build, the developer can edit the image script and redeploy it instead of having to rebuild a VM.
VMs vs. containers
VMs are much thicker than containers because each VM needs its own guest OS to run (Figure 1). One downside to Windows Server containers is that they present a security hazard because Docker containers share the host operating system's kernel, while each VM has its own kernel.
Microsoft developed Hyper-V containers to give each container its own kernel, adding a layer of security. Organizations that require high security and want to use containers should deploy their apps in a VM instead of a container.
Managing containers with Docker Datacenter
Docker Datacenter is a container as a service that makes it easier to design, build and maintain highly available clusters of Docker hosts and containers. Similar to what Microsoft aims to do with Azure Stack, Docker Datacenter brings the functionality that was developed in the cloud to the on-premises data center.
The following components make up the Docker Datacenter stack:
- Free and open source host operating systems -- Ubuntu Linux is the most common choice.
- Docker engine -- This component is also called the container runtime environment.
- Docker Universal Control Plane -- This is the clustering engine that makes containerized apps highly available.
- Docker Swarm -- This is the orchestration engine that lets containers "float" between multiple Docker hosts for high availability and agility.
- Docker Trusted Registry -- This is a catalog system that makes it easy to manage and distribute Docker images.
Administrators access the Docker Datacenter management and monitoring capabilities through a web portal.
How Docker and open source will affect the Windows admin
Microsoft is investing more in open source development, including competing operating systems and application development frameworks. The introduction of .NET Core means organizations can run proprietary Microsoft software, such as SQL Server, on Linux servers.
In addition, the role of containers in Windows Server 2016 enables IT teams deploy Windows applications in Windows Server and/or Hyper-V Docker containers. It would benefit Windows administrators to learn how to apply Docker technology in the data center.
To see how popular Windows Server in Docker is, go to the Docker Hub -- Docker's public container image gallery – and run a search for Windows Server. This will show how many Docker images and applications are available.
Deploying a Docker Datacenter environment in Azure
Docker has a public cloud service called Docker Cloud, but a Windows-based shop with an Azure subscription can host the Docker infrastructure in Azure. Deploying a Docker Datacenter cluster via Azure makes sense for businesses that don't want to invest in on-premises physical hardware to support these clusters.
It takes four steps to deploy Docker Cloud from the Microsoft Azure web portal (Figure 2).
- Click New to start the Azure deployment.
- Locate the Docker Datacenter Azure Resource Manage template in the Azure Marketplace.
- Click Deploy to start the deployment process.
- Fill out the form, give Azure about 20 minutes, and the Docker Datacenter cluster should be ready.
A valid Docker Datacenter license is required to deploy a cluster in Azure; Docker offers a free 30-day evaluation. Azure has its own cloud offering for Windows Server containers called the Azure Container Service.
How can administrators prepare for containers on Windows Server?