-
Notifications
You must be signed in to change notification settings - Fork 18.9k
Enable setting the dockerd exec-opt isolation=process on Windows 10 client version 1607 or greater #27524
Description
Now that Windows 10 Anniversary Edition has been released, Windows 10 client (such as Pro or Enterprise) can support docker run --isolation=process ...
In Windows 10, with the containers feature and Hyper-V feature configured to run, I got things setup and I could run in both hyperv and process isolation modes.
I regularly need to use VMware Workstation and cannot have Hyper-V turned on at the same time. Turning Hyper-V on or off requires rebooting. Very much not in the ethos of "quick".
I rebooted into Hyper-V off mode (through a bcdedit option) and can now run both VMware Workstation and docker run command, but I have to specify the isolation mode every time:
> docker run --isolation=process -it microsoft/nanoserver cmd
Setting the default options for dockerd are blocked from being changed to that default:
> dockerd.exe --exec-opt isolation=process
Error starting daemon: error setting default isolation mode: Windows client operating systems only support Hyper-V containers
Another good reason is that running Docker in process mode is quicker than running it an Hyper-V container mode. Even the second and subsequent times.
Proposal is that these lines in deamon_windows.go be modified to check for a minimum Windows client version, rather than blanket denying it:
if containertypes.Isolation(val).IsProcess() {
if system.IsWindowsClient() {
return fmt.Errorf("Windows client operating systems only support Hyper-V containers")
}
daemon.defaultIsolation = containertypes.Isolation("process")
}
@jhowardmsft, @mebersol, and @taylorb-microsoft were on merge #22774 that put this restriction into place.