diff --git a/config-windows.md b/config-windows.md index 0f7e8fef1..5dc8fbefc 100644 --- a/config-windows.md +++ b/config-windows.md @@ -94,3 +94,23 @@ The following parameters can be specified: } } ``` + +## HyperV + +`hyperv` is an OPTIONAL field of the Windows configuration. If present, the container will be run with Hyper-V isolation. If omitted, the container will be run as a Windows Server container. + +The following parameters can be specified: + +* **`utilityvmpath`** *(string, OPTIONAL)* - specifies the path to the image used for the utility VM. If not supplied, the runtime will search the container filesystem layers from the bottom-most layer upwards, until it locates "UtilityVM", and default to that path. + +* **`sandboxpath`** *(string)* - specifies the root of the path to the sandbox to be used for the container. + +### Example + +```json + "windows": { + "hyperv": { + "sandboxpath": "C:\\\\programdata\\\\docker\\\\windowsfilter" + } + } +``` \ No newline at end of file diff --git a/specs-go/config.go b/specs-go/config.go index f2016b04b..c32a81e65 100644 --- a/specs-go/config.go +++ b/specs-go/config.go @@ -432,6 +432,8 @@ type SolarisAnet struct { type Windows struct { // Resources contains information for handling resource constraints for the container. Resources *WindowsResources `json:"resources,omitempty"` + // HyperV contains information for running a container with Hyper-V isolation. + HyperV *WindowsHyperV `json:"hyperv,omitempty"` } // WindowsResources has container runtime resource constraints for containers running on Windows. @@ -478,6 +480,14 @@ type WindowsNetworkResources struct { EgressBandwidth *uint64 `json:"egressBandwidth,omitempty"` } +// WindowsHyperV contains information for configuring a container to run with Hyper-V isolation. +type WindowsHyperV struct { + // UtilityVMPath is an optional path to the image used for the Utility VM. + UtilityVMPath string `json:"utilityvmpath,omitempty"` + // SandboxPath is a required host-path to the sandbox to be used by the container. + SandboxPath string `json:"sandboxpath"` +} + // LinuxSeccomp represents syscall restrictions type LinuxSeccomp struct { DefaultAction LinuxSeccompAction `json:"defaultAction"`