I am just starting to get my head around the concept of Containers and decided to take Windows Server 2016 Technical Preview 5 for a test, which includes Docker Containers as a feature. It’s potentially worth being more explicit here (for anyone not aware) that this isn’t Microsoft’s version of Containers, this is docker container.
There are two types of containers supported by MS.
- Multiple container instances can run concurrently on a host, with isolation provided through namespace, resource control, and process isolation technologies. Windows Server containers share the same kernel with the host, as well as each other.
- Multiple container instances can run concurrently on a host; however, each container runs inside of a special virtual machine. This provides kernel level isolation between each Hyper-V container and the container host.
Lets Deploy our first windows container host:
First Install Container Feature
The container feature needs to be enabled before working with Windows containers. To do so run the following command in an elevated PowerShell session.
When the feature installation has completed, reboot the computer.
Next Install Docker
Docker is required in order to work with Windows containers. Docker consists of the Docker Engine, and the Docker client. For this exercise, both will be installed.
New-Item -Type Directory -Path ‘C:\Program Files\docker\’
Invoke-WebRequest https://aka.ms/tp5/b/dockerd -OutFile $env:ProgramFiles\docker\dockerd.exe
Invoke-WebRequest https://aka.ms/tp5/b/docker -OutFile $env:ProgramFiles\docker\docker.exe
[Environment]::SetEnvironmentVariable(“Path”, $env:Path + “;C:\Program Files\Docker”, [EnvironmentVariableTarget]::Machine)
The commands above create a new Docker folder in Program Files and download the docker deamon and client binaires in this directory. The last one adds the directory in the Path environment variable.
To install Docker as a Windows service, run the following.
Once installed, the service can be started.
Install Base Container Images
Before working with Windows Containers, a base image needs to be installed. Base images are available with either Windows Server Core or Nano Server as the underlying operating system.
To install the Windows Server Core base image run the following:
Install-PackageProvider ContainerImage -Force Install-ContainerImage -Name WindowsServerCore
Restart the Docker service: