文章目錄
- Windows 11 在 D 盤正確安裝 Docker Desktop 的完整教程
- **前言**
- **準備工作**
- **1. 手動創建 Docker 相關目錄**(?? **這一步非常重要**,否則會報錯)
- **2. 下載 Docker Desktop 安裝程序**
- **3. 使用管理員權限打開終端**
- **安裝 Docker Desktop 到 D 盤**
- **使用 PowerShell 安全更新 PATH 變量**
- **最終測試:Docker 是否正常運行**
Windows 11 在 D 盤正確安裝 Docker Desktop 的完整教程
如果已經安裝Docker Desktop,請使用windows系統設置中的<卸載>功能卸載掉。
前言
在 Windows 11 上安裝 Docker Desktop 時,我們通常希望將其安裝到 D 盤 而不是默認的 C 盤,以節省系統盤空間。然而,Docker Desktop 安裝時會默認寫入 C 盤,而手動修改安裝路徑后,可能會遇到 環境變量丟失、命令無法識別等問題。
本教程將詳細介紹如何在 Windows 11 中 正確安裝 Docker Desktop 到 D 盤,并確保 VS Code 和 CLI 端都能正確識別 docker
命令。
準備工作
1. 手動創建 Docker 相關目錄(?? 這一步非常重要,否則會報錯)
在運行安裝命令前,手動打開 D 盤,在 Program Files
文件夾內新建一個 Docker
文件夾,并在 Docker
文件夾內再新建一個 data
文件夾。
- D:\Program Files\Docker:Docker Desktop 的安裝目錄。
- D:\Program Files\Docker\data:Docker 用于存儲鏡像、容器、卷等數據的目錄。
注意,一定要嚴格按照這里的名稱建立文件夾!
2. 下載 Docker Desktop 安裝程序
從官方鏈接下載 Docker Desktop 安裝程序:點擊下載
3. 使用管理員權限打開終端
接下來的所有步驟都需要管理員權限,否則可能會遇到安裝失敗、權限不足等問題。
-
打開 CMD(命令提示符):
- 按下
Win + S
,搜索cmd
。 - 右鍵點擊
命令提示符
,選擇 “以管理員身份運行”。
- 按下
-
打開 PowerShell(某些命令可能需要 PowerShell):
- 按下
Win + X
,選擇 Windows 終端(管理員) 或 Windows PowerShell(管理員)。
- 按下
安裝 Docker Desktop 到 D 盤
在管理員 CMD 中,先進入 Docker Desktop Installer.exe
所在的目錄。
不同瀏覽器的默認下載目錄可能不同,請根據你的情況進入正確的路徑:
- 比如我是:Google Chrome 下載路徑:
cd D:\Chrome Download
然后執行以下安裝命令(確保在 CMD 中運行):
start /w "" "Docker Desktop Installer.exe" install -accept-license --installation-dir="D:\Program Files\Docker" --wsl-default-data-root="D:\Program Files\Docker\data" --windows-containers-default-data-root="D:\\Program Files\\Docker"
命令參數解釋
--installation-dir="D:\Program Files\Docker"
:指定 Docker Desktop 的安裝目錄。--wsl-default-data-root="D:\Program Files\Docker\data"
:指定 WSL 存儲 Docker 數據的目錄。--windows-containers-default-data-root="D:\\Program Files\\Docker"
:雙斜杠用于 Windows 容器存儲路徑。
安裝完成后,在 管理員 CMD 中執行以下命令檢查 Docker 是否安裝成功:
docker version
如果報錯:
'docker' 不是內部或外部命令,也不是可運行的程序或批處理文件。
說明環境變量沒設置好:
原因:Docker 安裝后,PATH
變量未正確更新,或者被 setx
截斷(Windows 限制 setx
設置的環境變量最大長度為 1024 字符)。
解決方法:
使用 PowerShell 安全更新 PATH 變量
Windows setx
命令有 1024 字符限制,我們可以改用 PowerShell 安全更新 PATH
:
$oldPath = [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::Machine)
$newPath = $oldPath + ";D:\Program Files\Docker\resources\bin"
[System.Environment]::SetEnvironmentVariable("Path", $newPath, [System.EnvironmentVariableTarget]::Machine)
然后 重啟電腦,再測試:
docker version
若成功,則會打印:
C:\Windows\System32>docker version
Client:Version: 27.5.1API version: 1.47Go version: go1.22.11Git commit: 9f9e405Built: Wed Jan 22 13:41:44 2025OS/Arch: windows/amd64Context: desktop-linux...(以下省略哈)
若失敗,則會打印:
C:\Windows\System32>docker version
Client:Version: 27.5.1API version: 1.47Go version: go1.22.11Git commit: 9f9e405Built: Wed Jan 22 13:41:44 2025OS/Arch: windows/amd64Context: desktop-linux
error during connect: Get "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/v1.47/version": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.
失敗的原因在于:Docker沒有運行
。
解決方案: 確保 Docker 運行
右鍵管理員運行Docker Desktop(也就是你桌面的Docker快捷方式)
然后 等待 1~2 分鐘,再運行:
docker version
最終測試:Docker 是否正常運行
在 管理員 CMD 運行一個測試容器,確保 Docker 能正常拉取和運行容器:
docker run hello-world
由于網絡原因,一般要多試幾次,三四次吧,看我這里前兩次的輸出,第一次是網絡問題沒打印成功:
C:\Windows\System32>docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: failed to resolve reference "docker.io/library/hello-world:latest": failed to authorize: failed to fetch oauth token: Post "https://auth.docker.io/token": net/http: TLS handshake timeout.
See 'docker run --help'.C:\Windows\System32>docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
e6590344b1a5: Download complete
Digest: sha256:bfbb0cc14f13f9ed1ae86abc2b9f11181dc50d779807ed3a3c5e55a6936dbdd5
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.
所以,最后如果輸出:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...(以下這里我省略哈)
說明 Docker 一切正常 🎉!