企业部署常见问题
MSI
有关使用 MSI 安装程序安装 Docker Desktop 的常见问题。
如果用户已有旧版 Docker Desktop 安装(即 .exe 版本),用户数据会怎样?
用户必须先
卸载旧的 .exe 安装,才能使用新的 MSI 版本。.exe 安装程序包含一个 -keep-data 标志,可在移除 Docker Desktop 的同时保留底层资源(例如容器 VM):
# 对于全用户安装
& 'C:\Program Files\Docker\Docker\Docker Desktop Installer.exe' uninstall -keep-data
# 对于每用户安装
& '%LOCALAPPDATA%\Programs\DockerDesktop\Docker Desktop Installer.exe' uninstall -keep-data
如果用户的机器上有旧的 .exe 安装,会发生什么?
MSI 安装程序会检测旧的 .exe 安装,并阻止安装,直到卸载先前版本。它会提示用户先卸载当前/旧版本,然后再重试安装 MSI 版本。
我的安装失败了,如何查明原因?
MSI 安装可能会静默失败,几乎不提供诊断反馈。
要调试失败的安装,请在启用详细日志记录的情况下再次运行安装:
msiexec /i "DockerDesktop.msi" /L*V ".\msi.log"安装失败后,打开日志文件并搜索 value 3 的出现位置。这是 Windows Installer 在失败时输出的退出代码。在该行上方,您将找到失败的原因。
为什么安装程序在每次全新安装结束时都提示重新启动?
安装程序提示重新启动,是因为它假定系统已进行更改,需要重新启动才能完成其配置。
例如,如果您选择了 WSL 引擎,安装程序会添加所需的 Windows 功能。安装这些功能后,系统会重新启动以完成配置,从而使 WSL 引擎能够正常工作。
您可以使用 /norestart 选项从命令行启动安装程序来禁止重新启动:
msiexec /i "DockerDesktop.msi" /L*V ".\msi.log" /norestart
为什么使用 Intune 或其他 MDM 解决方案安装 MSI 时,docker-users 组未填充用户账户?
MDM 解决方案通常在系统账户的上下文中安装应用程序。这意味着 docker-users 组不会填充用户账户,因为系统账户无权访问用户上下文。
例如,您可以通过在提升的命令提示符下使用 psexec 运行安装程序来重现此问题:
psexec -i -s msiexec /i "DockerDesktop.msi"安装应成功完成,但 docker-users 组不会被填充。
作为解决方法,您可以创建一个在用户账户上下文中运行的脚本。
该脚本将负责确保 docker-users 组存在并使用正确的用户填充它。
Warning加入
docker-users组即授予对 Docker 守护进程套接字的访问权限,这等同于在主机上授予管理权限。仅将需要访问 Windows 容器或 Hyper-V VM 管理的用户添加进去。对于使用 WSL 2 后端的 Linux 容器,不需要此组成员身份。详见 保护 Docker 守护进程套接字。
这是一个在需要时创建 docker-users 组并将当前用户添加到其中的示例脚本(要求可能因环境而异):
$Group = "docker-users"
$CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
# 如果组不存在,则创建该组
if (-not (Get-LocalGroup -Name $Group -ErrorAction SilentlyContinue)) {
New-LocalGroup -Name $Group
}
# 将用户添加到组中
Add-LocalGroupMember -Group $Group -Member $CurrentUserNote将新用户添加到
docker-users组后,用户必须先注销然后再重新登录,更改才能生效。
MDM
有关使用移动设备管理(MDM)工具(如 Jamf、Intune 或 Workspace ONE)部署 Docker Desktop 的常见问题。
为什么我的 MDM 工具无法一次性应用所有 Docker Desktop 配置设置?
某些 MDM 工具(例如 Workspace ONE)可能不支持在单个 XML 文件中应用多个配置设置。在这些情况下,您可能需要在单独的 XML 文件中部署每个设置。
请参阅您的 MDM 提供商的文档,了解具体的部署要求或限制。