Windows 2016 has a feature to add Windows and Hyper-V containers, both with their own advantages and limitations but I am not going to go over that in detail here. Below is a diagram that shows the architecture of each implementation and as we can see straight away that the Kernel is shared when using Windows Server Containers, hence it can only run Windows based instructions. This implementation doesn’t provide any security boundaries between containers as it exposes instructions of a container to the host and to all other VM’s, I wont go to comparision.
What I wanted to go over is a recent deployment that I have gone through which experienced some unusual behaviours.
Using Windows Server 2016 with Containers image from Azure gallery, provisioned a new Windows 2016 host, but that host on completion was missing Host Network Service (HNS network adaptor), this adaptor will be used for any communication that is external to the host, for example accessing the Internet.
The host was showing that Docker host network was bound to an adaptor that wasn’t showing in Network Connections and as you know that we don’t have access to see the status of that network adaptor on the host VM.
Using commands below I managed to clear Docker network settings and bring that network adaptor back online.
Using Powershell ran under admin credentials:
Get-ContainerNetwork | Remove-ContainerNetwork -force
Get-NetNat | Remove-NetNat
Your containers should have Internet/External access.