文章目录
- 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.1
API version: 1.47
Go version: go1.22.11
Git commit: 9f9e405
Built: Wed Jan 22 13:41:44 2025
OS/Arch: windows/amd64
Context: desktop-linux
...(以下省略哈)
若失败,则会打印:
C:\Windows\System32>docker version
Client:
Version: 27.5.1
API version: 1.47
Go version: go1.22.11
Git commit: 9f9e405
Built: Wed Jan 22 13:41:44 2025
OS/Arch: windows/amd64
Context: 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:latest
Hello 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 一切正常 🎉!