MSI FAQs

What happens to user data if they have an older Docker Desktop installation (i.e. .exe)?

If they have an older .exe installation, users must uninstall this version before using the new MSI version. This deletes all Docker containers, images, volumes, and other Docker-related data local to the machine, and removes the files generated by the application. For older versions, users should backup any containers that they want to keep.

For Docker Desktop versions 4.30 and later of the exe installer, a -keep-data flag is available. It removes Docker Desktop but keeps underlying data, such as the VMs that run containers.

& 'C:\Program Files\Docker\Docker\Docker Desktop Installer.exe' uninstall -keep-data

What happens if the user's machine has an older .exe installation?

The new MSI installer checks if a previous version was installed and doesn't proceed with the installation. Instead, it prompts the user to uninstall their current/old version first, before retrying to install the MSI version.

My installation failed, how do I find out what happened?

MSI installations can sometimes fail unexpectedly and not provide users with much information about what went wrong.

To debug a failed installation, run the install again with verbose logging enabled:

msiexec /i "DockerDesktop.msi" /L*V ".\msi.log"

After the installation has failed, open the log file and search for occurrences of value 3. This is the exit code Windows Installer outputs when it has failed. Just above the line, you will find the reason for the failure.

Why does the installer prompt for a reboot at the end of every fresh installation?

The installer prompts for a reboot because it assumes that changes have been made to the system that require a reboot to finish their configuration.

For example, if you select the WSL engine, the installer adds the required Windows features. After these features are installed, the system reboots to complete configurations so the WSL engine is functional.

You can suppress reboots by using the /norestart option when launching the installer from the command line:

msiexec /i "DockerDesktop.msi" /L*V ".\msi.log" /norestart

Why isn't the docker-users group populated when the MSI is installed with Intune or another MDM solution?

It's common for MDM solutions to install applications in the context of the system account. This means that the docker-users group isn't populated with the user's account, as the system account doesn't have access to the user's context.

As an example, you can reproduce this by running the installer with psexec in an elevated command prompt:

psexec -i -s msiexec /i "DockerDesktop.msi"

The installation should complete successfully, but the docker-users group won't be populated.

As a workaround, you can create a script that runs in the context of the user account.

The script would be responsible for creating the docker-users group and populating it with the correct user.

Here's an example script that creates the docker-users group and adds the current user to it (requirements may vary depending on environment):

$Group = "docker-users"
$CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name

# Create the group
New-LocalGroup -Name $Group

# Add the user to the group
Add-LocalGroupMember -Group $Group -Member $CurrentUser

Note

After adding a new user to the docker-users group, the user must sign out and then sign back in for the changes to take effect.