Search code examples
powershelldocker-composewindows-server-2016

How to get Docker Compose running on Windows Server 2016


My goal is to deploy a docker-compose solution to a server running Windows server 2016. I'm able to install everything but when I run a basic compose example I get an error:

Creating network "composetest_default" with the default driver
ERROR: HNS failed with error : The parameter is incorrect.

This is the example I'm following: https://docs.docker.com/compose/gettingstarted/

I was running a more advanced docker-compose file that used Postgres, PGAdmin and a python build but was getting similar networking errors. So my question is, how do I resolve these networking errors?

I've tried running on Windows Containers. I've tried running on Linux Containers and setting up Hyper-V to run correctly Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All. I've tried specifying the default network:

networks:
  default:
    external:
      name: nat

I've tried removing the NetNat network that's specified in this post HNS failed with error : The parameter is incorrect. Get-NetNat | Remove-NetNat


Solution

  • I was running Windows Server on a GCP Compute instance and GCP does not support Hyper-V. I think this was the root of all my problems. Reference: https://cloud.google.com/compute/docs/instances/enable-nested-virtualization-vm-instances