Skip to content

Commit 91ab080

Browse files
authored
ENGDOCS-2060 (docker#19793)
* ENGDOCS-2060 * ENGDOCS-2060 * fix build * language tweaks * first round refinements * fix build * review feedback and additions * review feedback and additions * review feedback and additions * Update opening paragraph * add intune * add intune * captain's feedback * further additions * further additions * add analytics.md * latest docs changes and additions * latest docs changes and additions * fix toc * fix toc * final tweaks * review tweak * review edits"
1 parent e684723 commit 91ab080

File tree

5 files changed

+350
-0
lines changed

5 files changed

+350
-0
lines changed

content/desktop/install/msi/_index.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
title: Deploy with Microsoft installer
3+
description: If you're an IT admin, learn how to deploy Docker Desktop with Microsoft installer
4+
keywords: msi, docker desktop, windows, installation
5+
---
6+
7+
> **Early Access**
8+
>
9+
> The MSI installer is an [early access](../../../release-lifecycle.md#early-access-ea) feature.
10+
> It's available to all company owners and organization owners with Docker Desktop version 4.32 and later.
11+
{ .restricted }
12+
13+
Docker offers a 64-bit Microsoft Installer (MSI) package designed to assist IT administrators in customizing and deploying Docker Desktop across multiple users or machines in an enterprise environment.
14+
15+
The MSI package supports various MDM (Mobile Device Management) solutions, making it ideal for bulk installations and eliminating the need for manual setups by individual users. With this package, IT administrators can ensure standardized, policy-driven installations of Docker Desktop, enhancing efficiency and software management across their organizations.
16+
17+
Whether you're looking to implement scripted installations or integrate Docker Desktop with existing MDM solutions, this MSI package is an essential resource.
18+
19+
## What's next
20+
21+
- [Use the Microsoft installer and read the configuration options](install-and-configure.md)
22+
- [Read the FAQs](faq.md)
23+
- [Install with Intune](use-intune.md)

content/desktop/install/msi/faq.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
title: MSI FAQs
3+
description: Frequently asked questions for deploying Docker Desktop with Microsoft installer
4+
keywords: msi, deploy, docker desktop, faqs
5+
tags: [FAQ]
6+
---
7+
8+
### What happens to user data if they have an older Docker Desktop installation (i.e. `.exe`)?
9+
10+
If they have an older `.exe` installation, users must [uninstall](../../uninstall.md) 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](../../backup-and-restore.md) any containers that they want to keep.
11+
12+
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.
13+
14+
```powershell
15+
& 'C:\Program Files\Docker\Docker\Docker Desktop Installer.exe' uninstall -keep-data
16+
```
17+
18+
### What happens if the user's machine has an older `.exe` installation?
19+
20+
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.
21+
22+
### My installation failed, how do I find out what happened?
23+
24+
MSI installations can sometimes fail unexpectedly and not provide users with much information about what went wrong.
25+
26+
To debug a failed installation, run the install again with verbose logging enabled:
27+
28+
```powershell
29+
msiexec /i "DockerDesktop.msi" /L*V ".\msi.log"
30+
```
31+
32+
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.
33+
34+
### Why does the installer prompt for a reboot at the end of every fresh installation?
35+
36+
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.
37+
38+
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.
39+
40+
You can suppress reboots by using the `/norestart` option when launching the installer from the command line:
41+
42+
```powershell
43+
msiexec /i "DockerDesktop.msi" /L*V ".\msi.log" /norestart
44+
```
Lines changed: 244 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
---
2+
title: Install and configure
3+
description: Understand how to use the MSI installer. Also explore additional configuration options.
4+
keywords: msi, windows, docker desktop, install, deploy, configure
5+
---
6+
7+
## Install interactively
8+
9+
1. In the [Docker Admin Console](http://admin.docker.com/), navigate to your organization.
10+
11+
2. Under **Security and access**, select the **Deploy Docker Desktop** page.
12+
13+
3. Select the **Download MSI installer** button.
14+
15+
4. Once downloaded, double-click `Docker Desktop Installer.msi` to run the installer.
16+
17+
5. Once you've accepted the license agreement, you can choose the install location. By default, Docker Desktop is installed at `C:\Program Files\Docker\Docker`.
18+
19+
6. Configure the Docker Desktop installation. You can:
20+
21+
- Create a desktop shortcut
22+
23+
- Set the Docker Desktop service startup type to automatic
24+
25+
- Disable Windows Container usage
26+
27+
- Select the engine for Docker Desktop. Either WSL or Hyper-V. If your system only supports one of the two options, you won't be able to select which backend to use.
28+
29+
7. Follow the instructions on the installation wizard to authorize the installer and proceed with the install.
30+
31+
8. When the installation is successful, select **Finish** to complete the installation process.
32+
33+
If your administrator account is different to your user account, you must add the user to the **docker-users** group:
34+
1. Run **Computer Management** as an **administrator**.
35+
2. Navigate to **Local Users and Groups** > **Groups** > **docker-users**.
36+
3. Right-click to add the user to the group.
37+
4. Sign out and sign back in for the changes to take effect.
38+
39+
## Install from the command line
40+
41+
This section covers command line installations of Docker Desktop using PowerShell. It provides common installation commands that you can run. You can also add additional arguments which are outlined in [configuration options](#configuration-options).
42+
43+
When installing Docker Desktop, you can choose between interactive or non-interactive installations.
44+
45+
Interactive installations, without specifying `/quiet` or `/qn`, display the user interface and let you select your own properties.
46+
47+
When installing via the user interface it's possible to:
48+
49+
- Choose the destination folder
50+
- Create a desktop shortcut
51+
- Configure the Docker Desktop service startup type
52+
- Disable Windows Containers
53+
- Choose between the WSL or Hyper-V engine
54+
55+
Non-interactive installations are silent and any additional configuration must be passed as arguments.
56+
57+
### Common installation commands
58+
59+
> **Important**
60+
>
61+
> Admin rights are required to run any of the following commands.
62+
{ .important }
63+
64+
#### Installing interactively with verbose logging
65+
66+
```powershell
67+
msiexec /i "DockerDesktop.msi" /L*V ".\msi.log"
68+
```
69+
70+
#### Installing interactively without verbose logging
71+
72+
```powershell
73+
msiexec /i "DockerDesktop.msi"
74+
```
75+
76+
#### Installing non-interactively with verbose logging
77+
78+
```powershell
79+
msiexec /i "DockerDesktop.msi" /L*V ".\msi.log" /quiet
80+
```
81+
82+
#### Installing non-interactively and suppressing reboots
83+
84+
```powershell
85+
msiexec /i "DockerDesktop.msi" /L*V ".\msi.log" /quiet /norestart
86+
```
87+
88+
#### Installing non-interactively with admin settings
89+
90+
```powershell
91+
msiexec /i "DockerDesktop.msi" /L*V ".\msi.log" /quiet /norestart ADMINSETTINGS="{"configurationFileVersion":2,"enhancedContainerIsolation":{"value":true,"locked":false}}" ALLOWEDORG="docker.com"
92+
```
93+
94+
#### Installing with the passive display option
95+
96+
You can use the `/passive` display option instead of `/quiet` when you want to perform a non-interactive installation but show a progress dialog.
97+
98+
In passive mode the installer doesn't display any prompts or error messages to the user and the installation cannot be cancelled.
99+
100+
For example:
101+
102+
```powershell
103+
msiexec /i "DockerDesktop.msi" /L*V ".\msi.log" /passive /norestart
104+
```
105+
106+
> **Tip**
107+
>
108+
> Some useful tips to remember when creating a value that expects a JSON string as it’s value:
109+
>
110+
> - The property expects a JSON formatted string
111+
> - The string should be wrapped in double quotes
112+
> - The string shouldn't contain any whitespace
113+
> - Property names are expected to be in double quotes
114+
{ .tip }
115+
116+
### Common uninstall commands
117+
118+
When uninstalling Docker Desktop, you need to use the same `.msi` file that was originally used to install the application.
119+
120+
If you no longer have the original `.msi` file, you need to use the product code associated with the installation. To find the product code, run:
121+
122+
```powershell
123+
Get-WmiObject Win32_Product | Select-Object IdentifyingNumber, Name | Where-Object {$_.Name -eq "Docker Desktop"}
124+
```
125+
126+
It should return output similar to the following:
127+
128+
```text
129+
IdentifyingNumber Name
130+
----------------- ----
131+
{10FC87E2-9145-4D7D-B493-2E99E8D8E103} Docker Desktop
132+
```
133+
> **Note**
134+
>
135+
> This command can take some time to return, depending on the number of installed applications.
136+
137+
`IdentifyingNumber` is the applications product code and can be used to uninstall Docker Desktop. For example:
138+
139+
```powershell
140+
msiexec /x {10FC87E2-9145-4D7D-B493-2E99E8D8E103} /L*V ".\msi.log" /quiet
141+
```
142+
143+
#### Uninstalling interactively with verbose logging
144+
145+
```powershell
146+
msiexec /x "DockerDesktop.msi" /L*V ".\msi.log"
147+
```
148+
149+
#### Uninstalling interactively without verbose logging
150+
151+
```powershell
152+
msiexec /x "DockerDesktop.msi"
153+
```
154+
155+
#### Uninstalling non-interactively with verbose logging
156+
157+
```powershell
158+
msiexec /x "DockerDesktop.msi" /L*V ".\msi.log" /quiet
159+
```
160+
161+
#### Uninstalling non-interactively without verbose logging
162+
163+
```powershell
164+
msiexec /x "DockerDesktop.msi" /quiet
165+
```
166+
167+
### Configuration options
168+
169+
> **Important**
170+
>
171+
> In addition to the following custom properties, the Docker Desktop MSI installer also supports the standard [Windows Installer command line options](https://learn.microsoft.com/en-us/windows/win32/msi/standard-installer-command-line-options).
172+
{ .important }
173+
174+
| Property | Description | Default |
175+
| :--- | :--- | :--- |
176+
| `ENABLEDESKTOPSHORTCUT` | Creates a desktop shortcut. | 1 |
177+
| `INSTALLFOLDER` | Specifies a custom location where Docker Desktop will be installed. | C:\Program Files\Docker |
178+
| `ADMINSETTINGS` | Automatically creates an `admin-settings.json` file which is used to [control certain Docker Desktop settings](../../hardened-desktop/settings-management/_index.md) on client machines within organizations. It must be used together with the `ALLOWEDORG` property. | None |
179+
| `ALLOWEDORG` | Requires the user to sign in and be part of the specified Docker Hub organization when running the application. This creates a registry key called `allowedOrgs` in `HKLM\Software\Policies\Docker\Docker Desktop`. | None |
180+
| `ALWAYSRUNSERVICE` | Lets users switch to Windows containers without needing admin rights | 0 |
181+
| `DISABLEWINDOWSCONTAINERS` | Disables the Windows containers integration | 0 |
182+
| `ENGINE` | Sets the Docker Engine that's used to run containers. This can be either `wsl` , `hyperv`, or `windows` | `wsl` |
183+
| `PROXYHTTPMODE` | Sets the HTTP Proxy mode. This can be either `system` or `manual` | `system` |
184+
| `OVERRIDEPROXYHTTP` | Sets the URL of the HTTP proxy that must be used for outgoing HTTP requests. | None |
185+
| `OVERRIDEPROXYHTTPS` | Sets the URL of the HTTP proxy that must be used for outgoing HTTPS requests. | None |
186+
| `OVERRIDEPROXYEXCLUDE` | Bypasses proxy settings for the hosts and domains. Uses a comma-separated list. | None |
187+
| `HYPERVDEFAULTDATAROOT` | Specifies the default location for the Hyper-V VM disk. | None |
188+
| `WINDOWSCONTAINERSDEFAULTDATAROOT` | Specifies the default location for Windows containers. | None |
189+
| `WSLDEFAULTDATAROOT` | Specifies the default location for the WSL distribution disk. | None |
190+
| `DISABLEANALYTICS` | When set to 1, analytics collection will be disabled for the MSI. For more information, see [Analytics](#analytics). | 0 |
191+
192+
193+
Additionally, you can also use `/norestart` or `/forcerestart` to control reboot behaviour.
194+
195+
By default, the installer reboots the machine after a successful installation. When ran silently, the reboot is automatic and the user is not prompted.
196+
197+
## Updates
198+
199+
When installing Docker Desktop with the MSI, in-app updates are disabled.
200+
201+
Docker Desktop will notify you when an update is available. To update Docker Desktop, download the latest installer from the Docker Admin Console. Navigate to the **Deploy Docker Desktop** page under **Security and access**.
202+
203+
To keep up to date with new releases, you can check use the [release notes](https://docs.docker.com/desktop/release-notes/) page.
204+
205+
## Analytics
206+
207+
The MSI installer collects data to better understand user behaviour and to improve the user experience by identifying and addressing issues or optimizing popular features.
208+
209+
### How to opt-out
210+
211+
{{< tabs >}}
212+
{{< tab name="From the GUI" >}}
213+
214+
When you install Docker Desktop from the default installer GUI, select the **Disable analytics** checkbox located on the bottom-left corner of the **Welcome** dialog.
215+
216+
{{< /tab >}}
217+
{{< tab name="From the command line" >}}
218+
219+
When you install Docker Desktop from the command line, use the `DISABLEANALYTICS` property.
220+
221+
```powershell
222+
msiexec /i "win\msi\bin\en-US\DockerDesktop.msi" /L*V ".\msi.log" DISABLEANALYTICS=1
223+
```
224+
225+
{{< /tab >}}
226+
{{< /tabs >}}
227+
228+
### Persistence
229+
230+
If you decide to disable analytics for an installation, your choice is persisted in the registry and honoured across future upgrades and uninstalls.
231+
232+
However, the key is removed when Docker Desktop is uninstalled and must be configured again via one of the previous methods.
233+
234+
The registry key is as follows:
235+
236+
```powershell
237+
SOFTWARE\Docker Inc.\Docker Desktop\DisableMsiAnalytics
238+
```
239+
240+
When analytics is disabled, this key has a value of `1`.
241+
242+
## Additional resources
243+
244+
- [Explore the FAQs](faq.md)
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
title: Use Intune
3+
description: Use Intune, Microsoft's cloud-based device management tool, to deploy Docker Desktop
4+
keywords: microsoft, windows, docker desktop, deploy, mdm, enterprise, administrator,
5+
---
6+
7+
Learn how to deploy Docker Desktop using Intune, Microsoft's cloud-based device management tool.
8+
9+
1. Sign in to your Intune admin center.
10+
2. Add a new app. Select **Apps**, then **Windows**, then **Add**.
11+
3. For the app type, select **Windows app (Win32)**
12+
4. Select the `intunewin` package.
13+
5. Complete any relevant details such as the description, publisher, or app version and then select **Next**.
14+
6. Optional: On the **Program** tab, you can update the **Install command** field to suit your needs. The field is pre-populated with `msiexec /i "DockerDesktop.msi" /qn`. See the [Common installation scenarios](install-and-configure.md) for examples on the changes you can make.
15+
16+
> **Tip**
17+
>
18+
> It's recommended you configure the Intune deployment to schedule a reboot of the machine on successful installs.
19+
>
20+
> This is because the Docker Desktop installer installs Windows features depending on your engine selection and also updates the membership of the `docker-users` local group.
21+
>
22+
> You may also want to set Intune to determine behaviour based on return codes and watch for a return code of `3010`.
23+
{ .tip }
24+
25+
7. Complete the rest of the tabs and then review and create the app.
26+
27+
## Additional resources
28+
29+
- [Explore the FAQs](faq.md).

data/toc.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,6 +1160,16 @@ Manuals:
11601160
title: Understand permission requirements for Mac
11611161
- path: /desktop/install/windows-install/
11621162
title: Windows
1163+
- sectiontitle: Use the MSI installer {{< badge color=violet text="Early Access" >}}
1164+
section:
1165+
- path: /desktop/install/msi/
1166+
title: Overview
1167+
- path: /desktop/install/msi/install-and-configure/
1168+
title: Install and configure
1169+
- path: /desktop/install/msi/use-intune/
1170+
title: Use Intune
1171+
- path: /desktop/install/msi/faq/
1172+
title: FAQs
11631173
- path: /desktop/windows/permission-requirements/
11641174
title: Understand permission requirements for Windows
11651175
- path: /desktop/install/linux-install/

0 commit comments

Comments
 (0)