常見問題集

MSI

如果使用者安裝了較舊版本的 Docker Desktop(例如 .exe),使用者資料會發生什麼事?

如果使用者安裝了較舊的 .exe 版本,則必須先解除安裝此版本,才能使用新的 MSI 版本。這會刪除所有 Docker 容器、映像檔、磁碟區和其他與 Docker 相關的本機資料,並移除應用程式產生的檔案。對於較舊的版本,使用者應該備份任何想要保留的容器。

對於 exe 安裝程式的 Docker Desktop 4.30 版和更新版本,可以使用 -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 安裝程式在失敗時輸出的結束代碼。在該行的正上方,您會找到失敗的原因。

為什麼每次全新安裝結束時,安裝程式都會提示重新啟動?

安裝程式會提示重新啟動,因為它假設系統已進行變更,需要重新啟動才能完成設定。

例如,如果您選擇 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 群組後,該使用者必須登出再登入,變更才會生效。