企业部署常见问题

MSI

关于使用 MSI 安装程序安装 Docker Desktop 的常见问题。

如果用户有较旧的 Docker Desktop 安装版本(即 .exe),用户数据会发生什么?

用户必须在安装新版 MSI 之前卸载较旧的 .exe 安装版本。这会删除机器上所有本地的 Docker 容器、镜像、卷以及其他与 Docker 相关的数据,并移除 Docker Desktop 生成的文件。

为了在卸载前保留现有数据,用户应该备份其容器和卷。

对于 Docker Desktop 4.30 及更高版本,.exe 安装程序包含一个 -keep-data 标志,该标志在移除 Docker Desktop 的同时保留底层资源,例如容器 VM。

& 'C:\Program Files\Docker\Docker\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 组并填充正确的用户。

以下是一个示例脚本,用于创建 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 组后,用户必须先注销,然后重新登录,更改才会生效。

页面选项