Skip to content

Commit 5fb0fb2

Browse files
authored
Engdocs 3223 (#24597)
<!--Delete sections as needed --> ## Description New Windows.exe installation behaviour ## Related issues or tickets https://docker.atlassian.net/browse/DKP-2524 ## Reviews <!-- Notes for reviewers here --> <!-- List applicable reviews (optionally @tag reviewers) --> - [ ] Technical review - [ ] Editorial review - [ ] Product review
1 parent a6ef029 commit 5fb0fb2

9 files changed

Lines changed: 133 additions & 34 deletions

File tree

content/manuals/admin/organization/setup/onboard.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,13 +73,13 @@ receive your Docker subscription benefits.
7373

7474
1. Identify the Docker users in your organization.
7575
- If your organization uses device management software, like MDM or Jamf,
76-
you can use the device management software to help identify Docker users.
77-
See your device management software's documentation for details. You can
78-
identify Docker users by checking if Docker Desktop is installed at the
79-
following location on each user's machine:
80-
- Mac: `/Applications/Docker.app`
81-
- Windows: `C:\Program Files\Docker\Docker`
82-
- Linux: `/opt/docker-desktop`
76+
you can use the device management software to help identify Docker users.
77+
See your device management software's documentation for details. You can
78+
identify Docker users by checking if Docker Desktop is installed at the
79+
following location on each user's machine:
80+
- Mac: `/Applications/Docker.app`
81+
- Windows: `C:\Program Files\Docker\Docker`(all-user installation) or `%LOCALAPPDATA%\Programs\DockerDesktop` (per-user installation (Beta))
82+
- Linux: `/opt/docker-desktop`
8383
- If your organization doesn't use device management software or your
8484
users haven't installed Docker Desktop yet, you can survey your users to
8585
identify who is using Docker Desktop.

content/manuals/desktop/setup/install/windows-install.md

Lines changed: 56 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,29 @@ This page provides download links, system requirements, and step-by-step install
3636

3737
_For checksums, see [Release notes](/manuals/desktop/release-notes.md)_
3838

39+
## Installation modes
40+
41+
Docker Desktop supports two installation modes. Per-user installation (Beta) is recommended for most users. It does not require administrator privileges to install or update, and the WSL 2 backend it uses covers the needs of the vast majority of Docker Desktop users.
42+
43+
| | Per-user (recommended) | All users |
44+
|---|---|---|
45+
| Install location | `%LOCALAPPDATA%\Programs\DockerDesktop` | `C:\Program Files\Docker\Docker` |
46+
| Registry keys | Current User (HKCU) | Local Machine (HKLM) |
47+
| Admin rights to install | Not required | Required |
48+
| Admin rights to update | Not required | Required |
49+
| Linux containers backend | WSL 2 only | WSL 2 or Hyper-V |
50+
| Windows containers | Not supported | Supported |
51+
| Security | Smaller attack surface; no privileged system service installed | Requires privileged system service; broader access to host resources |
52+
53+
For more information, see [Understand permission requirements for Windows](windows-install.md).
54+
3955
## System requirements
4056

4157
> [!TIP]
4258
>
4359
> **Should I use Hyper-V or WSL?**
4460
>
45-
> Docker Desktop's functionality remains consistent on both WSL and Hyper-V, without a preference for either architecture. Hyper-V and WSL have their own advantages and disadvantages, depending on your specific setup and your planned use case.
61+
> Docker Desktop's functionality remains consistent on both WSL and Hyper-V, without a preference for either architecture. Hyper-V and WSL have their own advantages and disadvantages, depending on your specific setup and your planned use case. Note that Hyper-V is only available with all-users installation. If you install Docker Desktop in per-user mode, WSL 2 is the only supported backend.
4662
4763
{{< tabs >}}
4864
{{< tab name="WSL 2 backend, x86_64" >}}
@@ -131,7 +147,11 @@ For more information, see [Running Docker Desktop in a VM or VDI environment](/m
131147

132148
1. Download the installer using the download button at the top of the page, or from the [release notes](/manuals/desktop/release-notes.md).
133149

134-
2. Double-click `Docker Desktop Installer.exe` to run the installer. By default, Docker Desktop is installed at `C:\Program Files\Docker\Docker`.
150+
2. Double-click `Docker Desktop Installer.exe` to run the installer. The installer will ask which installation mode you prefer. Choosing per-user installs to `%LOCALAPPDATA%\Programs\DockerDesktop` and requires no administrator privileges. Choosing all users will prompt for elevation.
151+
152+
> [!NOTE]
153+
>
154+
>If you want to switch installation mode at a later date, you need to uninstall and reinstall Docker Desktop.
135155
136156
3. When prompted, ensure the **Use WSL 2 instead of Hyper-V** option on the Configuration page is selected or not depending on your choice of backend.
137157

@@ -143,43 +163,54 @@ For more information, see [Running Docker Desktop in a VM or VDI environment](/m
143163

144164
6. [Start Docker Desktop](#start-docker-desktop).
145165

146-
If your administrator account is different to your user account, you must add the user to the **docker-users** group to access features that require higher privileges, such as creating and managing the Hyper-V VM, or using Windows containers:
166+
### Install from the command line
147167

148-
1. Run **Computer Management** as an **administrator**.
149-
2. Navigate to **Local Users and Groups** > **Groups** > **docker-users**.
150-
3. Right-click to add the user to the group.
151-
4. Sign out and sign back in for the changes to take effect.
168+
After downloading `Docker Desktop Installer.exe`, run the following command in a terminal to install Docker Desktop to `%LOCALAPPDATA%\Programs\DockerDesktop`.
152169

153-
### Install from the command line
170+
For per-user installation, run:
154171

155-
After downloading `Docker Desktop Installer.exe`, run the following command in a terminal to install Docker Desktop:
172+
```console
173+
$ "Docker Desktop Installer.exe" install --user
174+
```
156175

176+
To install for all users on the machine (requires administrator privileges):
177+
157178
```console
158179
$ "Docker Desktop Installer.exe" install
159180
```
160181

161-
If youre using PowerShell you should run it as:
162-
182+
If you're using PowerShell you should run it as:
183+
163184
```powershell
185+
# Per-user installation (no admin required)
186+
Start-Process 'Docker Desktop Installer.exe' -Wait -ArgumentList 'install', '--user'
187+
188+
# All-users installation (run as administrator)
164189
Start-Process 'Docker Desktop Installer.exe' -Wait install
165190
```
166191

167192
If using the Windows Command Prompt:
168-
193+
169194
```sh
195+
# Per-user installation (no admin required)
196+
start /w "" "Docker Desktop Installer.exe" install --user
197+
198+
# All-users installation (run as administrator)
170199
start /w "" "Docker Desktop Installer.exe" install
171200
```
172201

173-
By default, Docker Desktop is installed at `C:\Program Files\Docker\Docker`.
174-
175-
If your administrator account is different to your user account, you must add the user to the **docker-users** group to access features that require higher privileges, such as creating and managing the Hyper-V VM, or using Windows containers.
202+
If using all-users installation and your administrator account is different to your user account, you must add the user to the **docker-users** group to access features that require higher privileges, such as creating and managing the Hyper-V VM, or using Windows containers:
176203

177204
```console
178205
$ net localgroup docker-users <user> /add
179206
```
180207

181208
See the [Installer flags](#installer-flags) section to see what flags the `install` command accepts.
182209

210+
> [!NOTE]
211+
>
212+
>If you want to switch installation mode at a later date, you need to uninstall and reinstall Docker Desktop.
213+
183214
## Start Docker Desktop
184215

185216
Docker Desktop does not start automatically after installation. To start Docker Desktop:
@@ -249,6 +280,8 @@ If Microsoft Store access is blocked due to security policies:
249280
250281
#### Installation behavior
251282
283+
284+
- `--user`: Installs Docker Desktop in per-user mode, to `%LOCALAPPDATA%\Programs\DockerDesktop`. No administrator privileges are required. This is the recommended mode for most users. See [Installation modes](#installation-modes).
252285
- `--quiet`: Suppresses information output when running the installer
253286
- `--accept-license`: Accepts the [Docker Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement) now, rather than requiring it to be accepted when the application is first run
254287
- `--installation-dir=<path>`: Changes the default installation location (`C:\Program Files\Docker\Docker`)
@@ -293,13 +326,19 @@ If Microsoft Store access is blocked due to security policies:
293326

294327
### Administrator privileges
295328

296-
Installing Docker Desktop requires administrator privileges. However, once installed, it can be used without administrative access. Some actions, though, still need elevated permissions. See [Understand permission requirements for Windows](./windows-permission-requirements.md) for more detail.
329+
In per-user mode, Docker Desktop can be installed and updated without administrator privileges. Some settings still require elevation and are marked **Requires password** in the Settings UI. Enabling WSL 2 for the first time also requires administrator privileges, but this is a one-time, per-machine operation.
330+
331+
In all-users mode, installing Docker Desktop requires administrator privileges. However, once installed, it can be used without administrative access. Some actions, though, still need elevated permissions. See [Understand permission requirements for Windows](./windows-permission-requirements.md) for more detail.
297332

298333
See the [FAQs](/manuals/desktop/troubleshoot-and-support/faqs/general.md#how-do-i-run-docker-desktop-without-administrator-privileges) on how to install and run Docker Desktop without needing administrator privileges.
299334

300335
If you're an IT admin and your users do not have administrator rights and plan to perform operations that require elevated privileges, be sure to install Docker Desktop using the `--always-run-service` installer flag. This ensures those actions can still be executed without prompting for User Account Control (UAC) elevation. See [Installer Flags](#installer-flags) for more detail.
301336

302-
### Windows containers
337+
### Windows containers
338+
339+
> [!NOTE]
340+
>
341+
> Windows containers are only supported in all-users installation mode. They are not available when Docker Desktop is installed per-user.
303342
304343
From the Docker Desktop menu, you can toggle which daemon (Linux or Windows)
305344
the Docker CLI talks to. Select **Switch to Windows containers** to use Windows

content/manuals/desktop/setup/install/windows-permission-requirements.md

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,55 @@ weight: 40
1212

1313
This page contains information about the permission requirements for running and installing Docker Desktop on Windows, the functionality of the privileged helper process `com.docker.service`, and the reasoning behind this approach.
1414

15-
It also provides clarity on running containers as `root` as opposed to having `Administrator` access on the host and the privileges of the Windows Docker engine and Windows containers.
15+
It also provides clarity on running containers as `root` as opposed to having `Administrator` access on the host and the privileges of Docker Engine and Windows containers.
1616

1717
Docker Desktop on Windows is designed with security in mind. Administrative rights are only required when absolutely necessary.
1818

1919
## Permission requirements
2020

21-
While Docker Desktop on Windows can be run without having `Administrator` privileges, it does require them during installation. On installation you receive a UAC prompt which allows a privileged helper service to be installed. After that, Docker Desktop can be run without administrator privileges.
22-
23-
Running Docker Desktop on Windows without the privileged helper does not require users to have `docker-users` group membership. However,
24-
some features that require privileged operations will have this requirement.
25-
26-
If you performed the installation, you are automatically added to this group, but other users must be added manually. This allows the administrator to control who has access to features that require higher privileges, such as creating and managing the Hyper-V VM, or using Windows containers.
27-
21+
The permissions required to install and run Docker Desktop depend on which [installation mode](/manuals/desktop/setup/install/windows-install.md#installation-modes) you use.
22+
23+
### Per-user installation (Beta)
24+
25+
In per-user mode, Docker Desktop installs to `%LOCALAPPDATA%\Programs\DockerDesktop` and writes only to current-user registry keys (`HKCU`). This means:
26+
27+
- No administrator privileges are required to install or update Docker Desktop.
28+
- After installation, Docker Desktop can be run without administrator privileges.
29+
- Some settings marked **Requires password** in **Settings** still require elevation. When you change one of these settings and select **Apply**, Docker Desktop opens a UAC prompt for administrator access.
30+
31+
Per-user installation does not install the privileged helper service `com.docker.service` automatically. As a result, features that depend on it, such as the Hyper-V backend and Windows containers, are not available. For most users this is not a limitation, as the WSL 2 backend covers the majority of use cases.
32+
33+
### All-users installation
34+
35+
In all-users mode, Docker Desktop installs to `C:\Program Files\Docker\Docker` and writes to Local Machine registry keys (`HKLM`). Both locations require administrator privileges to modify, so:
36+
37+
- Administrator privileges are required to install and update Docker Desktop.
38+
- On installation you receive a UAC prompt which allows the privileged helper service `com.docker.service` to be installed.
39+
- After installation, Docker Desktop can be run without administrator privileges.
40+
41+
Running Docker Desktop without the privileged helper does not require users to have `docker-users` group membership. However, some features that require privileged operations will have this requirement.
42+
43+
If you performed the installation, you are automatically added to the `docker-users` group, but other users must be added manually. This allows the administrator to control who has access to features that require higher privileges, such as creating and managing the Hyper-V VM, or using Windows containers.
44+
2845
When Docker Desktop launches, all non-privileged named pipes are created so that only the following users can access them:
2946
- The user that launched Docker Desktop.
3047
- Members of the local `Administrators` group.
3148
- The `LOCALSYSTEM` account.
49+
50+
### Operations that always require elevation
51+
52+
The following require administrator privileges regardless of installation mode.
53+
54+
- Enabling WSL 2 for the first time: WSL 2 must be enabled on the machine before Docker Desktop can run. This is a one-time, per-machine operation. Once WSL 2 is enabled, it does not need to be enabled again for subsequent Docker Desktop installs or updates.
55+
- Settings marked **Requires password**: Certain Docker Desktop settings affect system-level configuration and require administrator credentials to apply. These are clearly marked **Requires password**. When you change one of these settings and select **Apply**, Docker Desktop prompts for administrator credentials.
3256

3357
## Privileged helper
3458

3559
Docker Desktop needs to perform a limited set of privileged operations which are conducted by the privileged helper process `com.docker.service`. This approach allows, following the principle of least privilege, `Administrator` access to be used only for the operations for which it is absolutely necessary, while still being able to use Docker Desktop as an unprivileged user.
3660

61+
> [!NOTE]
62+
>
63+
> `com.docker.service` is only installed in all-users installation mode. It is not used in per-user installation, which instead relies solely on the WSL 2 backend and does not support Hyper-V or Windows containers.
3764
3865
The privileged helper `com.docker.service` is a Windows service which runs in the background with `SYSTEM` privileges. It listens on the named pipe `//./pipe/dockerBackendV2`. The developer runs the Docker Desktop application, which connects to the named pipe and sends commands to the service. This named pipe is protected, and only users that are part of the `docker-users` group can have access to it.
3966

@@ -84,6 +111,10 @@ isolated from the Docker daemon and other services running inside the VM.
84111
>
85112
> Enabling Windows containers has important security implications.
86113
114+
> [!NOTE]
115+
>
116+
> Windows containers are only supported in all-users installation mode. They are not available when Docker Desktop is installed per-user. See [Installation modes](/manuals/desktop/setup/install/windows-install.md#installation-modes).
117+
87118
Unlike the Linux Docker Engine and containers which run in a VM, Windows containers are implemented using operating system features, and run directly on the Windows host. If you enable Windows containers during installation, the `ContainerAdministrator` user used for administration inside the container is a local administrator on the host machine. Enabling Windows containers during installation makes it so that members of the `docker-users` group are able to elevate to administrators on the host. For organizations who don't want their developers to run Windows containers, a `-–no-windows-containers` installer flag is available to disable their use.
88119

89120
## Networking

content/manuals/desktop/troubleshoot-and-support/troubleshoot/_index.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,21 @@ Docker Desktop cannot start.
9494
1. Locate the `com.docker.diagnose` tool:
9595

9696
```console
97+
# For all-user installations
9798
$ C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe
99+
100+
# For all-user installations
101+
$ %LOCALAPPDATA%\Programs\DockerDesktop\resources\com.docker.diagnose.exe
98102
```
99103

100104
2. Create and upload the diagnostics ID. In PowerShell, run:
101105

102106
```console
107+
# For all-user installations
103108
$ & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" gather -upload
109+
110+
# For all-user installations
111+
$ & %LOCALAPPDATA%\Programs\DockerDesktop\resources\com.docker.diagnose.exe" gather -upload
104112
```
105113

106114
After the diagnostics have finished, the terminal displays your diagnostics ID and the path to the diagnostics file. The diagnostics ID is composed of your user ID and a timestamp. For example `BE9AFAAF-F68B-41D0-9D12-84760E6B8740/20190905152051`.

content/manuals/desktop/uninstall.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ weight: 210
2525

2626
1. Locate the installer:
2727
```console
28+
# all-user installation
2829
$ C:\Program Files\Docker\Docker\Docker Desktop Installer.exe
30+
31+
# per-user installation (Beta)
32+
$ %LOCALAPPDATA%\Programs\DockerDesktop\Docker Desktop Installer.exe
2933
```
3034
2. Uninstall Docker Desktop.
3135
- In PowerShell, run:

content/manuals/desktop/use-desktop/kubernetes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ With Docker Desktop version 4.51 and later, you can manage Kubernetes directly f
2828
4. Optional: Select **Show system containers (advanced)** to view internal containers when using Docker commands.
2929
5. Select **Create**.
3030

31-
This sets up the images required to run the Kubernetes server as containers, and installs the `kubectl` command-line tool on your system at `/usr/local/bin/kubectl` (Mac) or `C:\Program Files\Docker\Docker\resources\bin\kubectl.exe` (Windows). If you installed `kubectl` using Homebrew, or by some other method, and experience conflicts, remove `/usr/local/bin/kubectl`.
31+
This sets up the images required to run the Kubernetes server as containers, and installs the `kubectl` command-line tool on your system at `/usr/local/bin/kubectl` (Mac) or `C:\Program Files\Docker\Docker\resources\bin\kubectl.exe`(all-user installations) or `%LOCALAPPDATA%\Programs\DockerDesktop\resources\bin\kubectl.exe` (per-user installations) (Windows). If you installed `kubectl` using Homebrew, or by some other method, and experience conflicts, remove `/usr/local/bin/kubectl`.
3232

3333
> [!NOTE]
3434
>

content/manuals/enterprise/enterprise-deployment/faq.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ Common questions about installing Docker Desktop using the MSI installer.
2020
Users must [uninstall](/manuals/desktop/uninstall.md) older `.exe` installations before using the new MSI version. The `.exe` installer includes a `-keep-data` flag that removes Docker Desktop while preserving underlying resources such as the container VMs:
2121

2222
```powershell
23+
# For all-user installations
2324
& 'C:\Program Files\Docker\Docker\Docker Desktop Installer.exe' uninstall -keep-data
25+
26+
# For per-user installations
27+
& '%LOCALAPPDATA%\Programs\DockerDesktop\Docker Desktop Installer.exe' uninstall -keep-data
28+
2429
```
2530

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

0 commit comments

Comments
 (0)