Containers have been available in the Linux world for some time. Server 2016 brings them to the Windows world.
The concept of containers is easy – they are a lightweight virtualisation option for application delivery. Think of them as an extremely light weight virtual ‘machine’. Machine is in quotes because they aren’t virtual machines. they do use Hyper-V’s virtualisation capabilities in certain scenarios.
Administering containers in Windows Server 2016 TP5 is an “interesting” challenge. You have a number of options:
First off there isn’t a GUI admin tool
Secondly, there’s a PowerShell module that installs with the Containers feature. This is marked as deprecated however.
Thirdly, you can download and install Docker for Windows but it isn’t complete. Docker for Windows and the original PowerShell module are incompatible in that they can’t work with containers created with the tool – they can’t even see them. The MSDN documentation seems to prefer Docker for administering containers.
Fourthly, there’s a new PowerShell module that is under development. It doesn’t have an ETA and if you want to trial it you have to compile the code yourself. This new PowerShell module uses the Docker REST API so you HAVE to install Docker.
Nano server is a very small footprint install option introduced in Server 2016. Running containers on Nano server is an ideal combination – assuming your applications will run on Nano server. In my opinion having to install Docker on my Nano server negates its premise.
In addition Docker is constantly evolving. Will Docker for Windows evolve at the same rate and will the new PowerShell module keep up.
Interesting questions that can’t be answered at present. Hopefully, the next iteration of Server 2016 might answer some of these questions. TP5 was released in April and hasn’t been as stable as TP4 in my experience. That plus the wireless connectivity issues that have only been partially resolved leave me hoping for a new version soon.
Whatever happens I suspect you’ll have to learn Docker with its arcane command syntax whether you want to or not.