App Layering

Docker

App Layering supports the Docker platform. To deploy Docker in an App Layering environment, consider the following:

  • Docker must be installed in the OS layer since it configures various Windows components.

  • You can create an OS revision to install and enable Docker.

  • Docker stays dormant until you issue Docker commands. Having Docker installed on the revision causes no issues on later revisions of the OS, packaging machines, or desktops deployed using the OS.

  • Do not place any Docker images in the OS layer or any of the app layers. The vhd(x) files written to the disk when the image is downloaded must be moved to the user’s writeable layer for the image to run. Docker must open the files for read and write access, which can only be done on the user’s volume.

    Note:

    In a full user layer implementation, the user only needs to download the Docker image once. The image persists through logoff and logon sessions.

  • Docker requires a hypervisor that can support nested hypervisors. The target hypervisor hosting the deployed VDI desktops must support nested hypervisors so when a user logs on the machine, they can download and run Docker images.

    Important:

    The storage location of the user’s layer does not matter for this constraint. It’s only the deployed VDI machine mounting the user’s layer which is required to run on a hypervisor that allows nested hypervisors.

  • Docker images can be large. The size of the user layers must be set to a larger size to accommodate the images when they’re downloaded. We recommend user layers set to 100 GB following our testing.

    Note:

    User layers are dynamic disks, so the actual size of the disk won’t be full size. Once disk space is used, it won’t return to being sparse, so the storage location of the user’s volumes needs sufficient disk space to accommodate the full size of the user’s layers over time.

Docker

In this article