企業部署常見問題
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
組後,使用者必須先登出,然後重新登入,更改才會生效。