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