常见问题
微星
如果用户安装了较旧的 Docker Desktop (即.exe
)?
如果他们有较早的.exe
安装,用户必须先卸载此版本,然后才能使用新的 MSI 版本。这将删除计算机本地的所有 Docker 容器、镜像、卷和其他与 Docker 相关的数据,并删除应用程序生成的文件。对于旧版本,用户应备份他们想要保留的任何容器。
对于 Docker Desktop 版本 4.30 及更高版本的exe
安装程序、-keep-data
标志可用。它会删除 Docker Desktop,但保留底层数据,例如运行容器的 VM。
& '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
为什么docker-users
组是否填充了 MSI 与 Intune 或其他 MDM 解决方案一起安装?
MDM 解决方案通常会在系统帐户的上下文中安装应用程序。这意味着docker-users
group 未填充用户的账户,因为 System 账户无权访问用户的上下文。
例如,您可以通过使用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
组,则用户必须注销,然后重新登录才能使更改生效。