Windows 11 下正确安装 Docker Desktop 到 D 盘的完整教程

文章目录

  • 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(命令提示符)

    1. 按下 Win + S,搜索 cmd
    2. 右键点击 命令提示符,选择 “以管理员身份运行”
  • 打开 PowerShell(某些命令可能需要 PowerShell):

    1. 按下 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 一切正常 🎉!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/980945.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring统一格式返回

目录 一&#xff1a;统一结果返回 1&#xff1a;统一结果返回写法 2&#xff1a;String类型报错问题 解决方法 二&#xff1a;统一异常返回 统一异常返回写法 三&#xff1a;总结 同志们&#xff0c;今天咱来讲一讲统一格式返回啊&#xff0c;也是好久没有讲过统一格式返…

(十 八)趣学设计模式 之 观察者模式!

目录 一、 啥是观察者模式&#xff1f;二、 为什么要用观察者模式&#xff1f;三、 观察者模式的实现方式四、 观察者模式的优缺点五、 观察者模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;…

Linux虚拟机网络配置-桥接网络配置

简介 本文档旨在指导用户如何在虚拟环境中配置Linux系统的桥接网络&#xff0c;以实现虚拟机与物理主机以及外部网络的直接通信。桥接网络允许虚拟机如同一台独立的物理机一样直接连接到物理网络&#xff0c;从而可以被分配一个独立的IP地址&#xff0c;并能够与网络中的其他设…

视频教育网站开源系统的部署安装 (roncoo-education)服务器为ubuntu22.04.05

一、说明 前端技术体系&#xff1a;Vue3 Nuxt3 Vite5 Vue-Router Element-Plus Pinia Axios 后端技术体系&#xff1a;Spring Cloud Alibaba2021 MySQL8 Nacos Seata Mybatis Druid redis 后端系统&#xff1a;roncoo-education&#xff08;核心框架&#xff1a;S…

线程相关八股

1. 线程和进程的区别&#xff1f; 进程&#xff1a;进程可以简单理解为进行一个程序&#xff0c;比如说我们打开一个浏览器&#xff0c;打开一个文本&#xff0c;这就是开启了一个进程&#xff0c;一个进程想要在计算机中运行&#xff0c;需要将程序交给CPU&#xff0c;将数据…

Python 绘制迷宫游戏,自带最优解路线

1、需要安装pygame 2、上下左右移动&#xff0c;空格实现物体所在位置到终点的路线&#xff0c;会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, botto…

【音视频】VLC播放器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 一、vlc是什么&#xff1f; VLC Media Player&#xff08;简称VLC&#xff09;是一款免费、开源、跨平台的多媒体播放器&#xff0c;由非营利组织VideoLAN开发&#xff0c;最…

vue2+ele-ui实践

前言&#xff1a;真理先于实践&#xff0c;实践发现真理&#xff0c;再实践检验真理 环境&#xff1a;vue2 & element-ui 正片&#xff1a; Select 选择器 简称 下拉框 下拉框完整的使用循环 下拉框 → 点击下拉框 → 展示数据 → 选择数据 → 下拉框显示数据 核心具有…

刷题日记——部分二分算法题目分享

前言 咱们紧跟上一期结合时间复杂度浅谈二分法的好处, 并分享部分二分题目(将持续更新题目,绝对值你一个收藏)-CSDN博客 笔者接着分享一些刷过的关于二分算法的题目. 第一题 1283. 使结果不超过阈值的最小除数 - 力扣&#xff08;LeetCode&#xff09; 这道题就是典型的二…

excel 斜向拆分单元格

右键-合并单元格 右键-设置单元格格式-边框 在设置好分割线后&#xff0c;你可以开始输入文字。 需要注意的是&#xff0c;文字并不会自动分成上下两行。 为了达到你期望的效果&#xff0c;你可以通过 同过左对齐、上对齐 空格键或使用【AltEnter】组合键来调整单元格中内容的…

关于常规模式下运行VScode无法正确执行“pwsh”问题

前言&#xff1a; pwsh在系统环境中正确配置&#xff0c;且可以运行在cmd&#xff0c; powshell&#xff08;5.1&#xff09;--- 都需要在管理员权限下运行 &#xff08;打开setting&#xff09; 打开setting.json &#xff08;在vscode中添加 powershell 7 路径&…

企微审批中MySQL字段TEXT类型被截断的排查与修复实践

在MySQL中&#xff0c;TEXT类型字段常用于存储较大的文本数据&#xff0c;但在一些应用场景中&#xff0c;当文本内容较大时&#xff0c;TEXT类型字段可能无法满足需求&#xff0c;导致数据截断或插入失败。为了避免这种问题&#xff0c;了解不同文本类型&#xff08;如TEXT、M…

异常 PipeMapRed.waitOutputThreads(): subprocess failed with code 127

直接放问题异常 hadoop jar /opt/module/hadoop-3.3.2/share/hadoop/tools/lib/hadoop-streaming-3.3.2.jar \ -D mapreduce.map.memory.mb100 \ -D mapreduce.reduce.memory.mb100 \ -D mapred.map.tasks1 \ -D stream.num.map.output.key.fields2 \ -D num.key.fields.for.pa…

Focal Loss (聚焦损失) :解决类别不平衡与难易样本的利器,让模型学会“重点学习”

1. 为什么需要Focal Loss&#xff1f; 2. 交叉熵损失的问题 3.Focal Loss的智慧&#xff1a;给不同的错误“区别对待” 4.代码演示 1. 为什么需要Focal Loss&#xff1f; 在机器学习和深度学习中&#xff0c;类别不平衡&#xff08;Class Imbalance&#xff09; 是一个普遍…

算法系列之数据结构-二叉树

在计算机科学中&#xff0c;数据结构是组织和存储数据的方式&#xff0c;以便能够高效地访问和修改数据。树&#xff08;Tree&#xff09;是一种非常重要的非线性数据结构&#xff0c;广泛应用于各种算法和应用中。本文将详细介绍树的基本概念、常见类型以及用Java实现树的遍历…

进来了解一下python的深浅拷贝

深浅拷贝是什么&#xff1a;在Python中&#xff0c;理解深拷贝&#xff08;deep copy&#xff09;和浅拷贝&#xff08;shallow copy&#xff09;对于处理复杂的数据结构&#xff0c;如列表、字典或自定义对象&#xff0c;是非常重要的。这两种拷贝方式决定了数据在内存中的复制…

磁盘空间不足|如何安全清理以释放磁盘空间(开源+节流)

背景&#xff1a; 最近往数据库里存的东西有点多&#xff0c;磁盘不够用 查看磁盘使用情况 df -h /dev/sda5&#xff08;根目录 /&#xff09; 已使用 92% 咱们来开源节流 目录 背景&#xff1a; 一、开源 二、节流 1.查找 大于 500MB 的文件&#xff1a; 1. Snap 缓存…

vue3学习-2(深入组件)

vue3学习-2&#xff08;深入组件&#xff09; 1.开始2.基础3.深入组件注册全局注册局部注册组件名格式 PropsProps 声明响应式 Props 解构 3.5将解构的 props 传递到函数中单向数据流更改对象 / 数组类型的 propsProp 校验 事件触发与监听事件事件参数声明触发的事件事件校验 组…

Java 入门 (超级详细)

一、什么是Java Java是一种高级编程语言&#xff0c;由Sun Microsystems公司于1995年推出。Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点&#xff0c;被广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运…

23种设计模式之工厂方法模式(Factory Method Pattern)【设计模式】

文章目录 一、工厂方法模式简介二、关键点三、代码示例3.1 定义抽象产品3.2 实现具体产品3.3 创建抽象工厂3.4 实现具体工厂3.5 客户端代码 四、解释五、优缺点5.1 优点5.2 缺点 六、适用场景 一、工厂方法模式简介 工厂方法模式&#xff08;Factory Method Pattern&#xff0…