Configure sign-in enforcement
You can enforce sign-in for Docker Desktop using several methods. Choose the method that best fits your organization's infrastructure and security requirements.
Choose your method
| Method | Platform | 
|---|---|
| Registry key | Windows only | 
| Configuration profiles | macOS only | 
| plistfile | macOS only | 
| registry.json | All platforms | 
TipFor macOS, configuration profiles offer the highest security because they're protected by Apple's System Integrity Protection (SIP).
Windows: Registry key method
To configure the registry key method manually:
- Create the registry key: - $ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop
- Create a multi-string value name - allowedOrgs.
- Use your organization names as string data: - Use lowercase letters only
- Add each organization on a separate line
- Do not use spaces or commas as separators
 
- Restart Docker Desktop. 
- Verify the - Sign in required!prompt appears in Docker Desktop.
ImportantYou can add multiple organizations with Docker Desktop version 4.36 and later. With version 4.35 and earlier, adding multiple organizations causes sign-in enforcement to fail silently.
Deploy the registry key across your organization using Group Policy:
- Create a registry script with the required key structure.
- In Group Policy Management, create or edit a GPO.
- Navigate to Computer Configuration > Preferences > Windows Settings > Registry.
- Right-click Registry > New > Registry Item.
- Configure the registry item:- Action: Update
- Path: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop
- Value name: allowedOrgs
- Value data: Your organization names
 
- Link the GPO to the target Organizational Unit.
- Test on a small group using gpupdate/force.
- Deploy organization-wide after verification.
macOS: Configuration profiles method (recommended)
Configuration profiles provide the most secure enforcement method for macOS, as they're protected by Apple's System Integrity Protection.
The payload is a dictionary of key-values. Docker Desktop supports the following keys:
- allowedOrgs: Sets a list of organizations in one single string, where each organization is separated by a semi-colon.
In Docker Desktop version 4.48 and later, the following keys are also supported:
- overrideProxyHTTP: Sets the URL of the HTTP proxy that must be used for outgoing HTTP requests.
- overrideProxyHTTPS: Sets the URL of the HTTP proxy that must be used for outgoing HTTPS requests.
- overrideProxyExclude: Bypasses proxy settings for the specified hosts and domains. Uses a comma-separated list.
- overrideProxyPAC: Sets the file path where the PAC file is located. It has precedence over the remote PAC file on the selected proxy.
- overrideProxyEmbeddedPAC: Sets the content of an in-memory PAC file. It has precedence over- overrideProxyPAC.
Overriding at least one of the proxy settings via Configuration profiles will automatically lock the settings as they're managed by macOS.
- Create a file named docker.mobileconfigwith this content:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PayloadContent</key> <array> <dict> <key>PayloadType</key> <string>com.docker.config</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadIdentifier</key> <string>com.docker.config</string> <key>PayloadUUID</key> <string>eed295b0-a650-40b0-9dda-90efb12be3c7</string> <key>PayloadDisplayName</key> <string>Docker Desktop Configuration</string> <key>PayloadDescription</key> <string>Configuration profile to manage Docker Desktop settings.</string> <key>PayloadOrganization</key> <string>Your Company Name</string> <key>allowedOrgs</key> <string>first_org;second_org</string> <key>overrideProxyHTTP</key> <string>http://company.proxy:port</string> <key>overrideProxyHTTPS</key> <string>https://company.proxy:port</string> </dict> </array> <key>PayloadType</key> <string>Configuration</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadIdentifier</key> <string>com.yourcompany.docker.config</string> <key>PayloadUUID</key> <string>0deedb64-7dc9-46e5-b6bf-69d64a9561ce</string> <key>PayloadDisplayName</key> <string>Docker Desktop Config Profile</string> <key>PayloadDescription</key> <string>Config profile to enforce Docker Desktop settings for allowed organizations.</string> <key>PayloadOrganization</key> <string>Your Company Name</string> </dict> </plist>
- Replace placeholders:- Change com.yourcompany.docker.configto your company identifier
- Replace Your Company Namewith your organization name
- Update the allowedOrgsvalue with your organization names (separated by semicolons)
- Replace company.proxy:portwith http/https proxy server host(or IP address) and port
 
- Change 
- Deploy the profile using your MDM solution.
- Verify the profile appears in System Settings > General > Device Management under Device (Managed) profiles.
macOS: plist file method
Use this alternative method for macOS with Docker Desktop version 4.32 and later.
- Create the file /Library/Application Support/com.docker.docker/desktop.plist.
- Add this content, replacing myorg1andmyorg2with your organization names:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>allowedOrgs</key> <array> <string>myorg1</string> <string>myorg2</string> </array> </dict> </plist>
- Set file permissions to prevent editing by non-administrator users.
- Restart Docker Desktop.
- Verify the Sign in required!prompt appears in Docker Desktop.
Create and deploy a script for organization-wide distribution:
#!/bin/bash
# Create directory if it doesn't exist
sudo mkdir -p "/Library/Application Support/com.docker.docker"
# Write the plist file
sudo defaults write "/Library/Application Support/com.docker.docker/desktop.plist" allowedOrgs -array "myorg1" "myorg2"
# Set appropriate permissions
sudo chmod 644 "/Library/Application Support/com.docker.docker/desktop.plist"
sudo chown root:admin "/Library/Application Support/com.docker.docker/desktop.plist"Deploy this script using SSH, remote support tools, or your preferred deployment method.
All platforms: registry.json method
The registry.json method works across all platforms and offers flexible deployment options.
File locations
Create the registry.json file at the appropriate location:
| Platform | Location | 
|---|---|
| Windows | /ProgramData/DockerDesktop/registry.json | 
| Mac | /Library/Application Support/com.docker.docker/registry.json | 
| Linux | /usr/share/docker-desktop/registry/registry.json | 
Basic setup
- Ensure users are members of your Docker organization.
- Create the registry.jsonfile at the appropriate location for your platform.
- Add this content, replacing organization names with your own:{ "allowedOrgs": ["myorg1", "myorg2"] }
- Set file permissions to prevent user editing.
- Restart Docker Desktop.
- Verify the Sign in required!prompt appears in Docker Desktop.
TipIf users have issues starting Docker Desktop after enforcing sign-in, they may need to update to the latest version.
Windows (PowerShell as Administrator)
Set-Content /ProgramData/DockerDesktop/registry.json '{"allowedOrgs":["myorg1","myorg2"]}'macOS
sudo mkdir -p "/Library/Application Support/com.docker.docker"
echo '{"allowedOrgs":["myorg1","myorg2"]}' | sudo tee "/Library/Application Support/com.docker.docker/registry.json"
Linux
sudo mkdir -p /usr/share/docker-desktop/registry
echo '{"allowedOrgs":["myorg1","myorg2"]}' | sudo tee /usr/share/docker-desktop/registry/registry.json
Create the registry.json file during Docker Desktop installation:
Windows
# PowerShell
Start-Process '.\Docker Desktop Installer.exe' -Wait 'install --allowed-org=myorg'
# Command Prompt
"Docker Desktop Installer.exe" install --allowed-org=myorgmacOS
sudo hdiutil attach Docker.dmg
sudo /Volumes/Docker/Docker.app/Contents/MacOS/install --allowed-org=myorg
sudo hdiutil detach /Volumes/Docker
Method precedence
When multiple configuration methods exist on the same system, Docker Desktop uses this precedence order:
- Registry key (Windows only)
- Configuration profiles (macOS only)
- plist file (macOS only)
- registry.json file
ImportantDocker Desktop version 4.36 and later supports multiple organizations in a single configuration. Earlier versions (4.35 and below) fail silently when multiple organizations are specified.
Troubleshoot sign-in enforcement
If sign-in enforcement doesn't work:
- Verify file locations and permissions
- Check that organization names use lowercase letters
- Restart Docker Desktop or reboot the system
- Confirm users are members of the specified organizations
- Update Docker Desktop to the latest version