mirror of https://github.com/docker/docs.git
ENGDOCS-2305 (#21397)
<!--Delete sections as needed --> ## Description Settings Management freshness before the arrival of the SM in the Admin Console. Have grouped the settings as they appear in the AC. Page is still quite long and so would like to do some testing (potench before the year is out) on whether splitting the info on all the settings into its own 'reference' page would be useful or too 'jumpy' for users. ## Related issues or tickets <!-- Related issues, pull requests, or Jira tickets --> ## Reviews <!-- Notes for reviewers here --> <!-- List applicable reviews (optionally @tag reviewers) --> - [ ] Technical review - [ ] Editorial review - [ ] Product review --------- Co-authored-by: Sarah Sanders <sarah.sanders@docker.com>
This commit is contained in:
parent
ff72d25816
commit
c13ed7f2e5
|
@ -31,6 +31,7 @@ exceptions:
|
|||
- DPI
|
||||
- DSOS
|
||||
- DVP
|
||||
- ECI
|
||||
- ELK
|
||||
- FAQ
|
||||
- FUSE
|
||||
|
@ -68,6 +69,7 @@ exceptions:
|
|||
- NTLM
|
||||
- NVDA
|
||||
- OCI
|
||||
- OS
|
||||
- OSS
|
||||
- PATH
|
||||
- PDF
|
||||
|
|
|
@ -9,31 +9,29 @@ aliases:
|
|||
weight: 10
|
||||
---
|
||||
|
||||
>**Note**
|
||||
> [!NOTE]
|
||||
>
|
||||
>Settings Management is available to Docker Business customers only.
|
||||
> Settings Management is available to Docker Business customers only.
|
||||
|
||||
Settings Management is a feature that helps admins to control certain Docker Desktop settings on client machines within their organization.
|
||||
Settings Management helps you control key Docker Desktop settings, like proxies and network configurations, on your developers' machines within your organization.
|
||||
|
||||
With a few lines of JSON, admins can configure controls for Docker Desktop settings such as proxies and network settings. For an extra layer of security, admins can also use Settings Management to enable and lock in [Enhanced Container Isolation](../enhanced-container-isolation/_index.md) which ensures that any configurations set with Settings Management cannot be modified by containers.
|
||||
For an extra layer of security, you can also use Settings Management to enable and lock in [Enhanced Container Isolation](../enhanced-container-isolation/_index.md), which prevents containers from modifying any Settings Management configurations.
|
||||
|
||||
It is available with [Docker Desktop 4.13.0 and later](/manuals/desktop/release-notes.md).
|
||||
|
||||
### Who is it for?
|
||||
## Who is it for?
|
||||
|
||||
- For organizations that want to configure Docker Desktop to be within their organization's centralized control.
|
||||
- For organizations that want to create a standardized Docker Desktop environment at scale.
|
||||
- For Docker Business customers who want to confidently manage their use of Docker Desktop within tightly regulated environments.
|
||||
|
||||
### How does it work?
|
||||
## How does it work?
|
||||
|
||||
Administrators can configure several Docker Desktop settings using an `admin-settings.json` file. This file is located on the Docker Desktop host and can only be accessed by developers with root or admin privileges.
|
||||
You can configure several Docker Desktop settings using an `admin-settings.json` file. This file is located on the Docker Desktop host and can only be accessed by developers with root or administrator privileges.
|
||||
|
||||
Values that are set to `locked: true` within the `admin-settings.json` override any previous values set by developers and ensure that these cannot be modified. For more information, see [Configure Settings Management](configure.md#step-two-configure-the-settings-you-want-to-lock-in).
|
||||
|
||||
### What features can I configure with Settings Management?
|
||||
## What features can I configure with Settings Management?
|
||||
|
||||
Using the `admin-settings.json` file, admins can:
|
||||
Using the `admin-settings.json` file, you can:
|
||||
|
||||
- Turn on and lock in [Enhanced Container Isolation](../enhanced-container-isolation/_index.md)
|
||||
- Configure HTTP proxies
|
||||
|
@ -50,21 +48,13 @@ Using the `admin-settings.json` file, admins can:
|
|||
- Control whether developers can use the Docker terminal
|
||||
- Control the file sharing implementation for your developers on macOS
|
||||
- Specify which paths your developers can add file shares to
|
||||
- Configure Air-Gapped Containers
|
||||
- Configure Air-gapped containers
|
||||
|
||||
For more details on the syntax and options admins can set, see [Configure Settings Management](configure.md).
|
||||
For more details on the syntax and options, see [Configure Settings Management](configure.md).
|
||||
|
||||
### How do I set up and enforce Settings Management?
|
||||
|
||||
As an administrator, you first need to [enforce
|
||||
sign-in](/manuals/security/for-admins/enforce-sign-in/_index.md). This is
|
||||
because the Settings Management feature requires a Docker Business subscription
|
||||
and therefore your Docker Desktop developers must authenticate to your
|
||||
organization. Enforcing sign-in ensures that your Docker Desktop developers
|
||||
always authenticate to your organization, even though they can authenticate
|
||||
without it and the feature will take effect. Enforcing sign-in guarantees the
|
||||
feature always takes effect.
|
||||
## How do I set up and enforce Settings Management?
|
||||
|
||||
You first need to [enforce sign-in](/manuals/security/for-admins/enforce-sign-in/_index.md) to ensure that all Docker Desktop developers authenticate with your organization. Since the Settings Management feature requires a Docker Business subscription, enforced sign-in guarantees that only authenticated users have access and that the feature consistently takes effect across all users, even though it may still work without enforced sign-in.
|
||||
|
||||
Next, you must either manually [create and configure the admin-settings.json file](configure.md), or use the `--admin-settings` installer flag on [macOS](/manuals/desktop/setup/install/mac-install.md#install-from-the-command-line) or [Windows](/manuals/desktop/setup/install/windows-install.md#install-from-the-command-line) to automatically create the `admin-settings.json` and save it in the correct location.
|
||||
|
||||
|
@ -72,11 +62,13 @@ Once this is done, Docker Desktop developers receive the changed settings when t
|
|||
- Quit, re-launch, and sign in to Docker Desktop
|
||||
- Launch and sign in to Docker Desktop for the first time
|
||||
|
||||
Docker doesn't automatically mandate that developers re-launch and re-authenticate once a change has been made, so as not to disrupt your developers' workflow.
|
||||
To avoid disrupting your developers' workflows, Docker doesn't automatically require that developers re-launch and re-authenticate once a change has been made.
|
||||
|
||||
### What do developers see when the settings are enforced?
|
||||
## What do developers see when the settings are enforced?
|
||||
|
||||
Any settings that are enforced, are grayed out in Docker Desktop and the user is unable to edit them, either via the Docker Desktop UI, CLI, or the `settings-store.json` file (or `settings.json` for Docker Desktop versions 4.34 and earlier). In addition, if Enhanced Container Isolation is enforced, developers can't use privileged containers or similar techniques to modify enforced settings within the Docker Desktop Linux VM, for example, reconfigure proxy and networking of reconfigure Docker Engine.
|
||||
Enforced settings appear grayed out in Docker Desktop. They can't be edited via the Docker Desktop Dashboard, CLI, or `settings-store.json` (or `settings.json` for Docker Desktop 4.34 and earlier).
|
||||
|
||||
In addition, if Enhanced Container Isolation is enforced, developers can't use privileged containers or similar techniques to modify enforced settings within the Docker Desktop Linux VM. For example, they can't reconfigure proxy and networking, or Docker Engine.
|
||||
|
||||

|
||||
|
||||
|
|
|
@ -3,67 +3,58 @@ description: How to configure Settings Management for Docker Desktop
|
|||
keywords: admin, controls, rootless, enhanced container isolation
|
||||
title: Configure Settings Management
|
||||
linkTitle: Configure
|
||||
toc_min: 4
|
||||
aliases:
|
||||
- /desktop/hardened-desktop/settings-management/configure/
|
||||
---
|
||||
|
||||
>**Note**
|
||||
> [!NOTE]
|
||||
>
|
||||
>Settings Management is available to Docker Business customers only.
|
||||
> Settings Management is available to Docker Business customers only.
|
||||
|
||||
This page contains information for admins on how to configure Settings Management to specify and lock configuration parameters to create a standardized Docker Desktop environment across the organization.
|
||||
This page contains information on how to configure Settings Management to specify and lock configuration parameters to create a standardized Docker Desktop environment across the organization.
|
||||
|
||||
Settings Management is designed specifically for organizations who don’t give developers root access to their machines.
|
||||
|
||||
### Prerequisites
|
||||
## Prerequisites
|
||||
|
||||
- [Download and install Docker Desktop 4.13.0 or later](/manuals/desktop/release-notes.md).
|
||||
- As an administrator, you need to [enforce
|
||||
sign-in](/manuals/security/for-admins/enforce-sign-in/_index.md). This is
|
||||
because this feature requires a Docker Business subscription and therefore
|
||||
your Docker Desktop users must authenticate to your organization for this
|
||||
configuration to take effect. Enforcing sign-in ensures that your Docker
|
||||
Desktop developers always authenticate to your organization, even though they
|
||||
can authenticate without it and the feature will take effect. Enforcing
|
||||
sign-in guarantees the feature always takes effect.
|
||||
You first need to [enforce sign-in](/manuals/security/for-admins/enforce-sign-in/_index.md) to ensure that all Docker Desktop developers authenticate with your organization. Since Settings Management requires a Docker Business subscription, enforced sign-in guarantees that only authenticated users have access and that the feature consistently takes effect across all users, even though it may still work without enforced sign-in.
|
||||
|
||||
|
||||
### Step one: Create the `admin-settings.json` file and save it in the correct location
|
||||
## Step one: Create the `admin-settings.json` file and save it in the correct location
|
||||
|
||||
You can either use the `--admin-settings` installer flag on [macOS](/manuals/desktop/setup/install/mac-install.md#install-from-the-command-line) or [Windows](/manuals/desktop/setup/install/windows-install.md#install-from-the-command-line) to automatically create the `admin-settings.json` and save it in the correct location, or set it up manually.
|
||||
|
||||
To set it up manually:
|
||||
1. Create a new, empty JSON file and name it `admin-settings.json`.
|
||||
2. Save the `admin-settings.json` file on your developers' machines in the following locations:
|
||||
- Mac: `/Library/Application\ Support/com.docker.docker/admin-settings.json`
|
||||
- Windows: `C:\ProgramData\DockerDesktop\admin-settings.json`
|
||||
- Linux: `/usr/share/docker-desktop/admin-settings.json`
|
||||
|
||||
- Mac: `/Library/Application\ Support/com.docker.docker/admin-settings.json`
|
||||
- Windows: `C:\ProgramData\DockerDesktop\admin-settings.json`
|
||||
- Linux: `/usr/share/docker-desktop/admin-settings.json`
|
||||
By placing this file in a protected directory, developers are unable to modify it.
|
||||
|
||||
By placing this file in the above protected directories, end users are unable to modify it.
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> It is assumed that you have the ability to push the `admin-settings.json` settings file to the locations specified through a device management software such as [Jamf](https://www.jamf.com/lp/en-gb/apple-mobile-device-management-mdm-jamf-shared/?attr=google_ads-brand-search-shared&gclid=CjwKCAjw1ICZBhAzEiwAFfvFhEXjayUAi8FHHv1JJitFPb47C_q_RCySTmF86twF1qJc_6GST-YDmhoCuJsQAvD_BwE).
|
||||
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> It is assumed that you have the ability to push the `admin-settings.json` settings file to the locations specified above through a device management software such as [Jamf](https://www.jamf.com/lp/en-gb/apple-mobile-device-management-mdm-jamf-shared/?attr=google_ads-brand-search-shared&gclid=CjwKCAjw1ICZBhAzEiwAFfvFhEXjayUAi8FHHv1JJitFPb47C_q_RCySTmF86twF1qJc_6GST-YDmhoCuJsQAvD_BwE).
|
||||
## Step two: Configure the settings you want to lock in
|
||||
|
||||
### Step two: Configure the settings you want to lock in
|
||||
|
||||
>**Note**
|
||||
> [!NOTE]
|
||||
>
|
||||
>Some of the configuration parameters only apply to Windows. This is highlighted in the table below.
|
||||
> Some of the configuration parameters only apply to Windows or to specific Docker Desktop versions. This is highlighted in the following table.
|
||||
|
||||
The `admin-settings.json` file requires a nested list of configuration parameters, each of which must contain the `locked` parameter. You can add or remove configuration parameters as per your requirements.
|
||||
The `admin-settings.json` file requires a nested list of configuration parameters, each of which must contain the `locked` parameter. You can add or remove configuration parameters as per your requirements.
|
||||
|
||||
If `locked: true`, users aren't able to edit this setting from Docker Desktop or the CLI.
|
||||
|
||||
If `locked: false`, it's similar to setting a factory default in that:
|
||||
- For new installs, `locked: false` pre-populates the relevant settings in the Docker Desktop UI, but users are able to modify it.
|
||||
- For new installs, `locked: false` pre-populates the relevant settings in the Docker Desktop Dashboard, but users are able to modify it.
|
||||
|
||||
- If Docker Desktop is already installed and being used, `locked: false` is ignored. This is because existing users of Docker Desktop may have already updated a setting, which in turn will have been written to the relevant config file, for example the `settings-store.json` (or `settings.json` for Docker Desktop versions 4.34 and earlier) or `daemon.json`. In these instances, the user's preferences are respected and we don't alter these values. These can be controlled by the admin by setting `locked: true`.
|
||||
- If Docker Desktop is already installed and being used, `locked: false` is ignored. This is because existing users of Docker Desktop may have already updated a setting, which in turn will have been written to the relevant config file, for example the `settings-store.json` (or `settings.json` for Docker Desktop versions 4.34 and earlier) or `daemon.json`. In these instances, the user's preferences are respected and the values aren't altered. These can be controlled by setting `locked: true`.
|
||||
|
||||
The following `admin-settings.json` code and table provides an example of the required syntax and descriptions for parameters and values:
|
||||
|
||||
```json
|
||||
```json {collapse=true}
|
||||
{
|
||||
"configurationFileVersion": 2,
|
||||
"exposeDockerAPIOnTCP2375": {
|
||||
|
@ -192,54 +183,100 @@ The following `admin-settings.json` code and table provides an example of the re
|
|||
}
|
||||
```
|
||||
|
||||
| Parameter | | Description |
|
||||
| :------------------------------- |---| :------------------------------- |
|
||||
| `configurationFileVersion` | |Specifies the version of the configuration file format. |
|
||||
| `exposeDockerAPIOnTCP2375` | Windows only| Exposes the Docker API on a specified port. If `value` is set to true, the Docker API is exposed on port 2375. Note: This is unauthenticated and should only be enabled if protected by suitable firewall rules.|
|
||||
| `proxy` | |If `mode` is set to `system` instead of `manual`, Docker Desktop gets the proxy values from the system and ignores and values set for `http`, `https` and `exclude`. Change `mode` to `manual` to manually configure proxy servers. If the proxy port is custom, specify it in the `http` or `https` property, for example `"https": "http://myotherproxy.com:4321"`. The `exclude` property specifies a comma-separated list of hosts and domains to bypass the proxy. |
|
||||
| `windowsDockerdPort` | Windows only | Exposes Docker Desktop's internal proxy locally on this port for the Windows Docker daemon to connect to. If it is set to 0, a random free port is chosen. If the value is greater than 0, use that exact value for the port. The default value is -1 which disables the option. Note: This is available for Windows containers only. |
|
||||
| `enableKerberosNtlm` | |When set to `true`, Kerberos and NTLM authentication is enabled. Default is `false`. Available in Docker Desktop version 4.32 and later. For more information, see the settings documentation. |
|
||||
| `containersProxy` (Beta) | | Allows you to create air-gapped containers. For more information see [Air-Gapped Containers](../air-gapped-containers.md).|
|
||||
| `enhancedContainerIsolation` | | If `value` is set to true, Docker Desktop runs all containers as unprivileged, via the Linux user-namespace, prevents them from modifying sensitive configurations inside the Docker Desktop VM, and uses other advanced techniques to isolate them. For more information, see [Enhanced Container Isolation](../enhanced-container-isolation/_index.md).|
|
||||
| `dockerSocketMount` | | By default, enhanced container isolation blocks bind-mounting the Docker Engine socket into containers (e.g., `docker run -v /var/run/docker.sock:/var/run/docker.sock ...`). This allows admins to relax this in a controlled way. See [ECI Configuration](../enhanced-container-isolation/config.md) for more info. |
|
||||
| `imageList` | | Indicates which container images are allowed to bind-mount the Docker Engine socket. |
|
||||
| `commandList` | | Restricts the commands that containers can issue via the bind-mounted Docker Engine socket. |
|
||||
| `linuxVM` | |Parameters and settings related to Linux VM options - grouped together here for convenience. |
|
||||
| `wslEngineEnabled` | Windows only | If `value` is set to true, Docker Desktop uses the WSL 2 based engine. This overrides anything that may have been set at installation using the `--backend=<backend name>` flag. |
|
||||
| `dockerDaemonOptions`| |If `value` is set to true, it overrides the options in the Docker Engine config file. See the [Docker Engine reference](/reference/cli/dockerd/#daemon-configuration-file). Note that for added security, a few of the config attributes may be overridden when Enhanced Container Isolation is enabled. |
|
||||
| `vpnkitCIDR` | |Overrides the network range used for vpnkit DHCP/DNS for `*.docker.internal` |
|
||||
|`kubernetes`| | If `enabled` is set to true, a Kubernetes single-node cluster is started when Docker Desktop starts. If `showSystemContainers` is set to true, Kubernetes containers are displayed in the UI and when you run `docker ps`. `imagesRepository` allows you to specify which repository Docker Desktop pulls the Kubernetes images from. For example, `"imagesRepository": "registry-1.docker.io/docker"`. |
|
||||
| `windowsContainers` | | Parameters and settings related to `windowsContainers` options - grouped together here for convenience. |
|
||||
| `dockerDaemonOptions` | | Overrides the options in the Linux daemon config file. See the [Docker Engine reference](/reference/cli/dockerd/#daemon-configuration-file).|
|
||||
|`disableUpdate`| |If `value` is set to true, checking for and notifications about Docker Desktop updates is disabled.|
|
||||
|`analyticsEnabled`| |If `value` is set to false, Docker Desktop doesn't send usage statistics to Docker. |
|
||||
|`extensionsEnabled`| |If `value` is set to false, Docker extensions are disabled. |
|
||||
|`scout`|| Setting `useBackgroundIndexing` to `false` disables automatic indexing of images loaded to the image store. Setting `sbomIndexing` to `false` prevents users from being able to index image by inspecting them in Docker Desktop or using `docker scout` CLI commands. |
|
||||
| `allowExperimentalFeatures`| | If `value` is set to `false`, experimental features are disabled.|
|
||||
| `allowBetaFeatures`| | If `value` is set to `false`, beta features are disabled.|
|
||||
| `blockDockerLoad` | | If `value` is set to `true`, users are no longer able to run [`docker load`](/reference/cli/docker/image/load/) and receive an error if they try to.|
|
||||
| `filesharingAllowedDirectories` | | Specify which paths your developers can add file shares to. Also accepts `$HOME`, `$TMP`, or `$TEMP` as `path` variables. When a path is added, its subdirectories are allowed. If `sharedByDefault` is set to `true`, that path will be added upon factory reset or when Docker Desktop first starts. |
|
||||
| `useVirtualizationFrameworkVirtioFS`| macOS only | If `value` is set to `true`, VirtioFS is set as the file sharing mechanism. Note: If both `useVirtualizationFrameworkVirtioFS` and `useGrpcfuse` have `value` set to `true`, VirtioFS takes precedence. Likewise, if both `useVirtualizationFrameworkVirtioFS` and `useGrpcfuse` have `value` set to `false`, osxfs is set as the file sharing mechanism. |
|
||||
| `useVirtualizationFrameworkRosetta`| macOS only | If `value` is set to `true`, Docker Desktop turns on Rosetta to accelerate x86_64/amd64 binary emulation on Apple Silicon. Note: This also automatically enables `Use Virtualization framework`. |
|
||||
| `useGrpcfuse` | macOS only | If `value` is set to `true`, gRPC Fuse is set as the file sharing mechanism. |
|
||||
| `displayedOnboarding` | | If `value` is set to `true`, the onboarding survey will not be displayed to new users. Setting `value` to `false` has no effect. |
|
||||
| `desktopTerminalEnabled` | | If `value` is set to `false`, developers cannot use the Docker terminal to interact with the host machine and execute commands directly from Docker Desktop. |
|
||||
### General
|
||||
|
||||
### Step three: Re-launch Docker Desktop
|
||||
|Parameter|OS|Description|Version|
|
||||
|:-------------------------------|---|:-------------------------------|---|
|
||||
|`configurationFileVersion`| |Specifies the version of the configuration file format.| |
|
||||
|`analyticsEnabled`| |If `value` is set to false, Docker Desktop doesn't send usage statistics to Docker. | |
|
||||
|`disableUpdate`| |If `value` is set to true, checking for and notifications about Docker Desktop updates is disabled.| |
|
||||
|`extensionsEnabled`| |If `value` is set to false, Docker extensions are disabled. | |
|
||||
| `blockDockerLoad` | | If `value` is set to `true`, users are no longer able to run [`docker load`](/reference/cli/docker/image/load/) and receive an error if they try to.| |
|
||||
| `displayedOnboarding` | | If `value` is set to `true`, the onboarding survey will not be displayed to new users. Setting `value` to `false` has no effect. | Docker Desktop version 4.30 and later |
|
||||
| `desktopTerminalEnabled` | | If `value` is set to `false`, developers cannot use the Docker terminal to interact with the host machine and execute commands directly from Docker Desktop. | |
|
||||
|`exposeDockerAPIOnTCP2375`| Windows only| Exposes the Docker API on a specified port. If `value` is set to true, the Docker API is exposed on port 2375. Note: This is unauthenticated and should only be enabled if protected by suitable firewall rules.| |
|
||||
|
||||
>**Note**
|
||||
### File sharing and emulation
|
||||
|
||||
|Parameter|OS|Description|Version|
|
||||
|:-------------------------------|---|:-------------------------------|---|
|
||||
| `filesharingAllowedDirectories` | | Specify which paths your developers can add file shares to. Also accepts `$HOME`, `$TMP`, or `$TEMP` as `path` variables. When a path is added, its subdirectories are allowed. If `sharedByDefault` is set to `true`, that path will be added upon factory reset or when Docker Desktop first starts. | |
|
||||
| `useVirtualizationFrameworkVirtioFS`| macOS only | If `value` is set to `true`, VirtioFS is set as the file sharing mechanism. Note: If both `useVirtualizationFrameworkVirtioFS` and `useGrpcfuse` have `value` set to `true`, VirtioFS takes precedence. Likewise, if both `useVirtualizationFrameworkVirtioFS` and `useGrpcfuse` have `value` set to `false`, osxfs is set as the file sharing mechanism. | |
|
||||
| `useGrpcfuse` | macOS only | If `value` is set to `true`, gRPC Fuse is set as the file sharing mechanism. | |
|
||||
| `useVirtualizationFrameworkRosetta`| macOS only | If `value` is set to `true`, Docker Desktop turns on Rosetta to accelerate x86_64/amd64 binary emulation on Apple Silicon. Note: This also automatically enables `Use Virtualization framework`. | Docker Desktop version 4.29 and later. |
|
||||
|
||||
### Docker Scout
|
||||
|
||||
|Parameter|OS|Description|Version|
|
||||
|:-------------------------------|---|:-------------------------------|---|
|
||||
|`scout`| | Setting `useBackgroundIndexing` to `false` disables automatic indexing of images loaded to the image store. Setting `sbomIndexing` to `false` prevents users from being able to index image by inspecting them in Docker Desktop or using `docker scout` CLI commands. | |
|
||||
|
||||
### Proxy
|
||||
|
||||
|Parameter|OS|Description|Version|
|
||||
|:-------------------------------|---|:-------------------------------|---|
|
||||
|`proxy`| |If `mode` is set to `system` instead of `manual`, Docker Desktop gets the proxy values from the system and ignores and values set for `http`, `https` and `exclude`. Change `mode` to `manual` to manually configure proxy servers. If the proxy port is custom, specify it in the `http` or `https` property, for example `"https": "http://myotherproxy.com:4321"`. The `exclude` property specifies a comma-separated list of hosts and domains to bypass the proxy. | |
|
||||
| `windowsDockerdPort`| Windows only | Exposes Docker Desktop's internal proxy locally on this port for the Windows Docker daemon to connect to. If it is set to 0, a random free port is chosen. If the value is greater than 0, use that exact value for the port. The default value is -1 which disables the option. | |
|
||||
| `enableKerberosNtlm`| |When set to `true`, Kerberos and NTLM authentication is enabled. Default is `false`. For more information, see the settings documentation. | Docker Desktop version 4.32 and later. |
|
||||
|
||||
### Container proxy
|
||||
|
||||
|Parameter|OS|Description|Version|
|
||||
|:-------------------------------|---|:-------------------------------|---|
|
||||
|`containersProxy` | | Creates air-gapped containers. For more information see [Air-Gapped Containers](../air-gapped-containers.md).| Docker Desktop version 4.29 and later. |
|
||||
|
||||
### Linux VM
|
||||
|
||||
|Parameter|OS|Description|Version|
|
||||
|:-------------------------------|---|:-------------------------------|---|
|
||||
| `linuxVM` | |Parameters and settings related to Linux VM options - grouped together here for convenience. | |
|
||||
| `wslEngineEnabled` | Windows only | If `value` is set to true, Docker Desktop uses the WSL 2 based engine. This overrides anything that may have been set at installation using the `--backend=<backend name>` flag. | |
|
||||
| `dockerDaemonOptions` | |If `value` is set to true, it overrides the options in the Docker Engine config file. See the [Docker Engine reference](/reference/cli/dockerd/#daemon-configuration-file). Note that for added security, a few of the config attributes may be overridden when Enhanced Container Isolation is enabled. | |
|
||||
| `vpnkitCIDR` | |Overrides the network range used for vpnkit DHCP/DNS for `*.docker.internal` | |
|
||||
|
||||
### Windows containers
|
||||
|
||||
|Parameter|OS|Description|Version|
|
||||
|:-------------------------------|---|:-------------------------------|---|
|
||||
| `windowsContainers` | | Parameters and settings related to `windowsContainers` options - grouped together here for convenience. | |
|
||||
| `dockerDaemonOptions` | | Overrides the options in the Linux daemon config file. See the [Docker Engine reference](/reference/cli/dockerd/#daemon-configuration-file).| |
|
||||
|
||||
### Kubernetes
|
||||
|
||||
|Parameter|OS|Description|Version|
|
||||
|:-------------------------------|---|:-------------------------------|---|
|
||||
|`kubernetes`| | If `enabled` is set to true, a Kubernetes single-node cluster is started when Docker Desktop starts. If `showSystemContainers` is set to true, Kubernetes containers are displayed in the Docker Desktop Dashboard and when you run `docker ps`. `imagesRepository` lets you specify which repository Docker Desktop pulls the Kubernetes images from. For example, `"imagesRepository": "registry-1.docker.io/docker"`. | |
|
||||
|
||||
### Features in development
|
||||
|
||||
|Parameter|OS|Description|Version|
|
||||
|:-------------------------------|---|:-------------------------------|---|
|
||||
| `allowExperimentalFeatures`| | If `value` is set to `false`, experimental features are disabled.| |
|
||||
| `allowBetaFeatures`| | If `value` is set to `false`, beta features are disabled.| |
|
||||
|
||||
### Enhanced Container Isolation
|
||||
|
||||
|Parameter|OS|Description|Version|
|
||||
|:-------------------------------|---|:-------------------------------|---|
|
||||
|`enhancedContainerIsolation`| | If `value` is set to true, Docker Desktop runs all containers as unprivileged, via the Linux user-namespace, prevents them from modifying sensitive configurations inside the Docker Desktop VM, and uses other advanced techniques to isolate them. For more information, see [Enhanced Container Isolation](../enhanced-container-isolation/_index.md).| |
|
||||
| `dockerSocketMount` | | By default, enhanced container isolation blocks bind-mounting the Docker Engine socket into containers (e.g., `docker run -v /var/run/docker.sock:/var/run/docker.sock ...`). This lets you relax this in a controlled way. See [ECI Configuration](../enhanced-container-isolation/config.md) for more info. | |
|
||||
| `imageList` | | Indicates which container images are allowed to bind-mount the Docker Engine socket. | |
|
||||
| `commandList` | | Restricts the commands that containers can issue via the bind-mounted Docker Engine socket. | |
|
||||
|
||||
## Step three: Re-launch Docker Desktop
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
>Administrators should test the changes made through the `admin-settings.json` file locally to see if the settings work as expected.
|
||||
> Test the changes made through the `admin-settings.json` file locally to see if the settings work as expected.
|
||||
|
||||
For settings to take effect:
|
||||
- On a new install, developers need to launch Docker Desktop and authenticate to their organization.
|
||||
- On an existing install, developers need to quit Docker Desktop through the Docker menu, and then relaunch Docker Desktop. If they are already signed in, they don't need to sign in again for the changes to take effect.
|
||||
>**Important**
|
||||
- On an existing install, developers need to quit Docker Desktop through the Docker menu, and then re-launch Docker Desktop. If they are already signed in, they don't need to sign in again for the changes to take effect.
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
>Selecting **Restart** from the Docker menu isn't enough as it only restarts some components of Docker Desktop.
|
||||
|
||||
Docker doesn't automatically mandate that developers re-launch and sign in once a change has been made so as not to disrupt your developers' workflow.
|
||||
> Selecting **Restart** from the Docker menu isn't enough as it only restarts some components of Docker Desktop.
|
||||
|
||||
So as not to disrupt your developers' workflow, Docker doesn't automatically mandate that developers re-launch and re-authenticate once a change has been made.
|
||||
|
||||
In Docker Desktop, developers see the relevant settings grayed out and the message **Locked by your administrator**.
|
||||
|
||||
|
|
Loading…
Reference in New Issue