常见问题

微星

如果用户安装了较旧的 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-usersgroup 未填充用户的账户,因为 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组,则用户必须注销,然后重新登录才能使更改生效。