Virtualization technology has serious drawbacks, such as performance degradation due to the heavyweight nature of virtual machines(VM), the lack of application portability, slowness in provisioning of IT resources, and so on.
A Docker container is a portable operating environment comprising everything necessary to run the software independently, without affecting the rest of the system, and without the system affecting the application.
A Docker container includes a software component along with all of its dependencies (binaries, libraries, configuration files, scripts, jars, and so on).
There can be multiple Docker containers in a single machine and containers are completely isolated from one another as well as from the host machine.
Microsoft announced the release of Windows Server 2016 and System Center 2016 at its Ignite event in Atlanta. The commercially supported edition of the Docker engine is included at no extra cost.
Docker and Microsoft have partnered to bring the agility, portability, and security benefits of the Docker platform to every edition of Windows Server 2016 in October 2016. Windows Server 2016 Containers, powered by Docker Engine, brings containers to native Windows applications and expands the toolset for traditional Docker Linux developers and IT pros.
63% of the Intel server workloads are run on Windows. With containerization, Windows IT-pros get most of the isolation and release-artifact-stability benefits of VMs, without the resource overhead and lost agility inherent in hardware virtualization.
The first step in manually creating a container image is to deploy a container. For this example, deploy an IIS container from the pre-created IIS image. Once the container has been deployed, you will be working in a shell session from within the container. The interactive session is initiated with the
docker run -it -p 80:80 microsoft/iis cmd.exe
With the exception of GUI apps and apps requiring Windows Remote Desktop,
most apps that run on Windows Server can be dockerized to run in an image based on microsoft/windowsservercore with minimal effort.
Examples include Microsoft SQL Server, Apache, Internet Information Services (IIS) and the full .NET framework.
C:\> docker run –it ––name coreserver1 microsoft/windowsservercore powershell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
Our docker run statement translates to “Run the powershell command from within a new Server Core-based container named coreserver1.”
The other base layer option is Nano Server, a new and very minimal Windows version with a pared-down Windows API. Lots of software already runs on Nano Server, including IIS, the new .NET Core framework, Node.js and Go. And the Nano Server base image is an order of magnitude smaller than Windows Server Core, meaning it has less dependencies and surface area to keep updated. Nano Server is an exciting development, not only as a base for minimal containers that build and boot quickly, but also as a Minimalist Operating System that makes for a great container host OS running just the Docker daemon and containers, and nothing else.