Skip to content

Enable setting the dockerd exec-opt isolation=process on Windows 10 client version 1607 or greater #27524

@ngbrown

Description

@ngbrown

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/runtimeRuntimekind/enhancementEnhancements are not bugs or new features but can improve usability or performance.platform/windows

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions