配置设置管理
笔记
设置管理仅适用于 Docker Business 客户。
此页面包含有关管理员如何配置设置管理以指定和锁定配置参数以在整个组织中创建标准化 Docker 桌面环境的信息。
设置管理专为不向开发人员授予其计算机 root 访问权限的组织而设计。
先决条件
- 下载并安装 Docker Desktop 4.13.0 或更高版本。
- 作为管理员,您需要 配置registry.json以强制登录。这是因为此功能需要 Docker Business 订阅,因此您的 Docker Desktop 用户必须向您的组织进行身份验证才能使此配置生效。
第一步:创建 admin-settings.json 文件并将其保存在正确的位置
您可以--admin-settings
在
macOS或
Windows上使用安装程序标志自动创建admin-settings.json
并将其保存在正确的位置,也可以手动设置。
手动设置:
创建一个新的空 JSON 文件并将其命名为
admin-settings.json
.将文件保存
admin-settings.json
在开发人员计算机上的以下位置:- 苹果:
/Library/Application\ Support/com.docker.docker/admin-settings.json
- Windows:
C:\ProgramData\DockerDesktop\admin-settings.json
- Linux:
/usr/share/docker-desktop/admin-settings.json
通过将此文件放置在上述受保护目录中,最终用户将无法对其进行修改。
重要的
假设您能够通过Jamf
admin-settings.json
等设备管理软件将设置文件推送到上面指定的位置 。- 苹果:
第二步:配置您想要锁定的设置
笔记
某些配置参数仅适用于 Windows。下表突出显示了这一点。
该admin-settings.json
文件需要一个嵌套的配置参数列表,每个配置参数都必须包含该locked
参数。您可以根据需要添加或删除配置参数。
如果locked: true
,则用户无法从 Docker Desktop 或 CLI 编辑此设置。
如果locked: false
,则类似于设置出厂默认值:
对于新安装,
locked: false
在 Docker Desktop UI 中预填充相关设置,但用户可以对其进行修改。如果 Docker Desktop 已安装并正在使用,
locked: false
则被忽略。这是因为 Docker Desktop 的现有用户可能已经更新了设置,该设置又将被写入相关的配置文件,例如settings.json
或daemon.json
.在这些情况下,用户的偏好受到尊重,我们不会更改这些值。这些可以由管理员通过设置来控制locked: true
。
以下admin-settings.json
代码和表提供了参数和值所需语法和描述的示例:
{
"configurationFileVersion": 2,
"exposeDockerAPIOnTCP2375": {
"locked": true,
"value": false
},
"proxy": {
"locked": true,
"mode": "system",
"http": "",
"https": "",
"exclude": [],
"windowsDockerdPort": 65000
},
"containersProxy": {
"locked": true,
"mode": "manual",
"http": "",
"https": "",
"exclude": [],
"pac":"",
"transparentPorts": ""
},
"enhancedContainerIsolation": {
"locked": true,
"value": true,
"dockerSocketMount": {
"imageList": {
"images": [
"docker.io/localstack/localstack:*",
"docker.io/testcontainers/ryuk:*"
]
},
"commandList": {
"type": "deny",
"commands": ["push"]
}
}
},
"linuxVM": {
"wslEngineEnabled": {
"locked": false,
"value": false
},
"dockerDaemonOptions": {
"locked": false,
"value":"{\"debug\": false}"
},
"vpnkitCIDR": {
"locked": false,
"value":"192.168.65.0/24"
}
},
"kubernetes": {
"locked": false,
"enabled": false,
"showSystemContainers": false,
"imagesRepository": ""
},
"windowsContainers": {
"dockerDaemonOptions": {
"locked": false,
"value":"{\"debug\": false}"
}
},
"disableUpdate": {
"locked": false,
"value": false
},
"analyticsEnabled": {
"locked": false,
"value": true
},
"extensionsEnabled": {
"locked": true,
"value": false
},
"scout": {
"locked": false,
"sbomIndexing": true,
"useBackgroundIndexing": true
},
"allowExperimentalFeatures": {
"locked": false,
"value": false
},
"allowBetaFeatures": {
"locked": false,
"value": false
},
"blockDockerLoad": {
"locked": false,
"value": true
},
"filesharingAllowedDirectories": [
{
"path": "$HOME",
"sharedByDefault": true
},
{
"path":"$TMP",
"sharedByDefault": false
}
],
"useVirtualizationFrameworkVirtioFS": {
"locked": true,
"value": true
},
"useVirtualizationFrameworkRosetta": {
"locked": true,
"value": true
},
"useGrpcfuse": {
"locked": true,
"value": true
}
}
范围 | 描述 | |
---|---|---|
configurationFileVersion | 指定配置文件格式的版本。 | |
exposeDockerAPIOnTCP2375 | 仅限 Windows | 在指定端口上公开 Docker API。如果value 设置为 true,则 Docker API 将在端口 2375 上公开。注意:这是未经身份验证的,只有在受到适当防火墙规则保护的情况下才应启用。 |
proxy | 如果mode 设置为system 而不是manual ,Docker Desktop 从系统获取代理值并忽略为http 、https 和设置的值exclude 。更改mode 为manual 手动配置代理服务器。如果代理端口是自定义的,请在http 或https 属性中指定,例如"https": "http://myotherproxy.com:4321" 。该exclude 属性指定以逗号分隔的主机和域列表以绕过代理。 | |
windowsDockerdPort | 仅限 Windows | 在此端口上本地公开 Docker Desktop 的内部代理,以供 Windows Docker 守护进程连接。如果设置为 0,则选择随机空闲端口。如果该值大于 0,请使用该端口的确切值。默认值为 -1,禁用该选项。注意:这仅适用于 Windows 容器。 |
containersProxy (测试版) | 允许您创建气隙容器。有关详细信息,请参阅 使用设置管理配置气隙容器。 | |
enhancedContainerIsolation | 如果value 设置为 true,Docker Desktop 将通过 Linux 用户命名空间以非特权方式运行所有容器,防止它们修改 Docker Desktop VM 内的敏感配置,并使用其他高级技术来隔离它们。有关更多信息,请参阅增强容器隔离。 | |
dockerSocketMount | 默认情况下,增强的容器隔离会阻止将 Docker 引擎套接字绑定安装到容器中(例如,docker run -v /var/run/docker.sock:/var/run/docker.sock ... )。这允许管理员以受控的方式放松这一点。有关详细信息,请参阅
ECI 配置。 | |
imageList | 指示允许哪些容器镜像绑定挂载 Docker Engine 套接字。 | |
commandList | 限制容器可以通过绑定安装的 Docker Engine 套接字发出的命令。 | |
linuxVM | 与 Linux VM 选项相关的参数和设置 - 为方便起见,在此处分组在一起。 | |
wslEngineEnabled | 仅限 Windows | 如果value 设置为 true,则 Docker Desktop 使用基于 WSL 2 的引擎。这会覆盖安装时使用该标志设置的任何内容--backend=<backend name> 。 |
dockerDaemonOptions | 如果value 设置为 true,它将覆盖 Docker 引擎配置文件中的选项。请参阅
Docker 引擎参考。请注意,为了增加安全性,启用增强型容器隔离时,一些配置属性可能会被覆盖。 | |
vpnkitCIDR | 覆盖用于 vpnkit DHCP/DNS 的网络范围*.docker.internal | |
kubernetes | 如果enabled 设置为 true,则在 Docker Desktop 启动时启动 Kubernetes 单节点集群。如果showSystemContainers 设置为 true,则 Kubernetes 容器将显示在 UI 中,并且当您运行docker ps .imagesRepository 允许您指定 Docker Desktop 从哪个存储库中提取 Kubernetes 映像。例如,"imagesRepository": "registry-1.docker.io/docker" 。 | |
windowsContainers | 与选项相关的参数和设置windowsContainers - 为方便起见,在此处分组在一起。 | |
dockerDaemonOptions | 覆盖 Linux 守护程序配置文件中的选项。请参阅 Docker 引擎参考。 | |
disableUpdate | 如果value 设置为 true,则会禁用检查 Docker Desktop 更新和有关 Docker Desktop 更新的通知。 | |
analyticsEnabled | 如果value 设置为 false,Docker Desktop 不会向 Docker 发送使用情况统计信息。 | |
extensionsEnabled | 如果value 设置为 false,则禁用 Docker 扩展。 | |
scout | 设置useBackgroundIndexing 为false 禁用加载到图像存储的图像的自动索引。设置sbomIndexing 为阻止用户通过在 Docker Desktop 中检查图像或使用CLI 命令false 来索引图像。docker scout | |
allowExperimentalFeatures | 如果value 设置为false ,则禁用实验功能。 | |
allowBetaFeatures | 如果value 设置为false ,则禁用 Beta 功能。 | |
blockDockerLoad | 如果value 设置为true ,用户将无法再
docker load 尝试运行并收到错误。 | |
filesharingAllowedDirectories | 指定开发人员可以添加文件共享的路径。还接受$HOME 、$TMP 、 或$TEMP 作为path 变量。添加路径后,允许其子目录。如果sharedByDefault 设置为true ,则该路径将在恢复出厂设置或 Docker Desktop 首次启动时添加。 | |
useVirtualizationFrameworkVirtioFS | 仅限 macOS | 如果value 设置为true ,则将 VirtioFS 设置为文件共享机制。注意:如果useVirtualizationFrameworkVirtioFS 和都useGrpcfuse 设置value 为true ,则 VirtioFS 优先。同样,如果useVirtualizationFrameworkVirtioFS 和都useGrpcfuse 设置value 为false ,则将 osxfs 设置为文件共享机制。 |
useVirtualizationFrameworkRosetta | 仅限 macOS | 如果value 设置为true ,Docker Desktop 将打开 Rosetta 以加速 Apple Silicon 上的 x86_64/amd64 二进制模拟。注意:这也会自动启用Use Virtualization framework . |
useGrpcfuse | 仅限 macOS | 如果value 设置为true ,则将 gRPC Fuse 设置为文件共享机制。 |
第三步:重新启动 Docker Desktop
笔记
管理员应在本地测试通过文件所做的更改,
admin-settings.json
以查看设置是否按预期工作。
使设置生效:
- 在新安装中,开发人员需要启动 Docker Desktop 并向其组织进行身份验证。
- 在现有安装中,开发人员需要通过 Docker 菜单退出 Docker Desktop,然后重新启动 Docker Desktop。如果他们已经登录,则无需再次登录即可使更改生效。
重要的
从 Docker 菜单中选择“重新启动”是不够的,因为它只会重新启动 Docker Desktop 的某些组件。
一旦发生更改,Docker 不会自动要求开发人员重新启动并登录,以免扰乱开发人员的工作流程。
在 Docker Desktop 中,开发人员会看到相关设置呈灰色,并显示消息已被管理员锁定。

