常见问题
MSI
如果用户安装了较旧的Docker Desktop版本(即.exe
),用户数据会发生什么?
如果他们安装了较旧的.exe
版本,用户必须先卸载此版本才能使用新的MSI版本。这将删除本地机器上所有Docker容器、镜像、卷和其他与Docker相关的数据,并删除应用程序生成的文件。对于较旧的版本,用户应该备份他们想要保留的任何容器。
对于exe
安装程序的Docker Desktop 4.30及更高版本,提供了-keep-data
标志。它会删除Docker Desktop,但会保留底层数据,例如运行容器的虚拟机。
& 'C:\Program Files\Docker\Docker\Docker Desktop Installer.exe' uninstall -keep-data
如果用户的机器安装了较旧的.exe
版本会发生什么?
新的MSI安装程序会检查是否安装了以前的版本,并且不会继续安装。相反,它会提示用户先卸载当前/旧版本,然后再尝试安装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
组并使用正确的用户填充它。
这是一个创建docker-users
组并将当前用户添加到其中的示例脚本(具体要求可能因环境而异)
$Group = "docker-users"
$CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
# Create the group
New-LocalGroup -Name $Group
# Add the user to the group
Add-LocalGroupMember -Group $Group -Member $CurrentUser
注意
将新用户添加到
docker-users
组后,用户必须注销然后重新登录才能使更改生效。