【docker】windows10 docker 安装到D盘

一、前言

以前只在linux安装docker,但现在需要在windows装docker,还要装到D盘,试了三天终于装上了,不记录一点儿东西太对不起我浪费的三天时间。
之前参考了很多博客,虽然教程很多,但都零零散散,有些地方也没说清楚,为什么这么做,排查问题的时候会造成很多莫名其妙的问题。所以我写详细点儿。

操作系统:Windows 10 家庭版。
【注意:大部分命令都需要管理员权限】

二、安装过程

1. 准备

1.1 启动windows的WSL功能

参考:Windows Subsystem for Linux (WSL, Ubuntu) 最新安装教程(2024.11 更新)
10分钟学会Docker的安装和使用
【通常情况下,Docker Desktop 安装程序会自动启用 WSL 功能,不需要手动启用。但以防万一还是检查一下比较好】

  1. 打开 “控制面板”,选择 “程序”,然后点击 “启动或关闭 Windows 功能”。

  2. 在显示的列表中找到 “适用于 Linux 的 Windows 子系统”,勾选选项。
    在这里插入图片描述

  3. 点击 “确定”,等待系统完成配置,按要求重启电脑。

1.2 安装wsl(Windows Subsystem for Linux)

有两种方法:

方法一:一步到位

参考:win11安装的Docker 坎

右键菜单,选择以管理员身份打开 PowerShell,运行以下命令:
(后台开启科学上网比较快)

wsl --install

这个命令使系统自动启用 WSL 功能、安装 WSL2 内核、设置默认版本,并安装默认的 Linux 发行版。

这是一个简化 WSL(Windows Subsystem for Linux)安装过程的命令。它首次在 Windows 10 版本 2004 及更高版本 和 Windows 11 中引入,用于一键安装 WSL 及其相关组件。

细节作用

  • 自动启用 WSL 功能:
    • 启用 Microsoft-Windows-Subsystem-Linux 功能(WSL 的基础)。
    • 启用 VirtualMachinePlatform 功能(WSL2 必需)。
  • 安装 WSL2 内核:
    • 自动下载并安装 WSL2 内核更新包(无需手动下载 .msi 文件)。
  • 设置 WSL2 为默认版本:
    • 将 WSL2 设置为默认版本,以后安装的 Linux 发行版都会默认使用 WSL2。
  • 安装默认的 Linux 发行版:
    • 自动安装默认的 Linux 发行版(通常是 Ubuntu,除非你指定其他发行版)。
方法二:分步执行

参考:将 Docker 安装到 Windows 的 D 盘的方法

步骤1:启用 WSL 功能

管理员身份打开 PowerShell,运行以下命令:

(1) 启用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

这个命令的作用是启用 WSL 功能,使得 Windows 能够运行 Linux 发行版。

命令解释:

  • dism.exe: DISM(Deployment Imaging Service and Management Tool)是 Windows 中的一个命令行工具,用于管理 Windows 映像和功能。
  • /online: 表示对当前运行的 Windows 操作系统进行操作。
  • /enable-feature: 启用指定的 Windows 功能。
  • /featurename:Microsoft-Windows-Subsystem-Linux: 指定要启用的功能名称,这里是 WSL(Windows Subsystem for Linux)。
  • /all: 启用该功能的所有依赖项。
  • /norestart: 命令执行完成后不自动重启系统。

(2) 启用虚拟机平台(WSL2 必需)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

这个命令的作用是启用虚拟机平台功能,这是 WSL2 所必需的。WSL2 是基于虚拟化技术的,因此需要启用虚拟机平台来支持 WSL2 的运行。

命令解释:

  • dism.exe: 同上,DISM 工具。
  • /online: 对当前运行的 Windows 操作系统进行操作。
  • /enable-feature: 启用指定的 Windows 功能。
  • /featurename:VirtualMachinePlatform: 指定要启用的功能名称,这里是虚拟机平台(Virtual Machine Platform)。
  • /all: 启用该功能的所有依赖项。
  • /norestart: 命令执行完成后不自动重启系统。

然后重启电脑,以使更改生效。

步骤2:安装WSL内核

这是一个由微软提供的 WSL2 内核更新包,用于在 Windows 上启用 WSL2 所需的虚拟化组件。

下载WSL2 内核更新包:
WSL2 Linux 内核更新包(微软官方)
下载完成后,双击 .msi 文件运行安装程序,按照提示完成安装。

安装完成后,设置 WSL2 为默认版本:
wsl --set-default-version 2

这是为了以后安装的 Linux 发行版都会默认使用 WSL2。

步骤3:更新 WSL 的核心组件和 Linux 内核到最新版本。

wsl --update

步骤4:WSL安装 Linux 发行版(这里是 Ubuntu)

(后台开启科学上网比较快)
wsl --install -d Ubuntu
或者安装其他指定的 Linux 发行版

这一步只是为了保证wsl能正常安装Linux发行版, 之后的docker会用另外的Linux发行版

1.3 重启并检查

步骤1. 重启:

安装完成后,系统会提示你重启电脑。

步骤2. 启动 Linux 发行版:
  • 重启后,从开始菜单中找到安装的 Linux 发行版(如 Ubuntu)并单击运行。
  • 第一次启动时,系统会提示你设置用户名和密码。
    在这里插入图片描述在这里插入图片描述
步骤3. 检查:

管理员模式打开powershell:
wsl -l -v
在这里插入图片描述
确保 VERSION 为 2,表示 Ubuntu 正在使用 WSL2。

2. 安装docker desktop 到D盘

参考:Windows装Docker至D盘/其他盘(最新,最准确,直接装)

2.1. 官网下载Docker Desktop Installer.exe

(后台开启科学上网比较快)
https://www.docker.com/get-started/
把下载好的exe放到你要安装的D盘目录下。
比如:

D:\program

在这里插入图片描述

2.2. 以管理员身份打开cmd,并转到你下载文件的目录。
2.3. 在cmd内运行下面代码,并根据你的安装需求做出修改:

先想好你打算把docker安装在什么目录下,提前新建一个docker目录和docker/data目录

比如:

D:\program\Docker
D:\program\Docker\data

然后执行命令(路径自己修改):
start /w "" "Docker Desktop Installer.exe" install -accept-license --backend=wsl-2 --installation-dir="D:\program\Docker" --wsl-default-data-root="D:\program\Docker\data" --windows-containers-default-data-root="D:\\program\\Docker"

解释:

  • 使用 start /w 启动安装程序,并等待安装完成。
  • 安装程序会按照指定的参数进行安装:
    • 使用 WSL 2 作为后端。
    • 将 Docker Desktop 安装到 D:\program\Docker。
    • 将 WSL 2 数据存储到 D:\program\Docker\data。
    • 将 Windows 容器数据存储到 D:\program\Docker。
  • 通过 -accept-license 参数,跳过许可协议的确认步骤。
2.4. 启动docker desktop

右键管理员身份运行docker desktop桌面图标
在这里插入图片描述
再检查设置resources中的data路径。

安装完成。

安装并启动docker desktop 后docker会自动在wsl中创建一个linux发行版docker-desktop

检查发行版并设置默认子系统:
参考:https://www.cnblogs.com/haima/p/18697360
wsl -l -v
在这里插入图片描述
wsl -s docker-desktop
wsl -l -v
在这里插入图片描述
查看docker版本:
docker -v

3. 配置镜像

参考:Docker Desktop国内镜像源
按上面这个教程做,很快的。这里不赘述了。

三、遇到的问题和解决方法

1. 安装docker时是否需要双反斜杠转义?

解决:不知道,最好用双反吧。参考https://blog.csdn.net/m0_51290571/article/details/144635357 说是要双反的。

2. 看到一些教程说要启动hyper-v,但在windows功能中没有看见。

解决:docker后端WSL 2 或 Hyper-V二选一就行了。
但因为Hyper-V 仅在 Windows 10/11 专业版、企业版或教育版中可用,家庭版不支持 Hyper-V。所以我们不用Hyper-V,而是用WSL2
参考:亲测有用!Docker Desktop安装到D盘,非C盘

3. 打开docker desktop时弹窗报错:Docker Desktop distro installation failed

解决: 查看弹窗内的具体错误:

ensuring main distro is deployed: deploying “docker-desktop”: preparing directory “D:\program\Docker\data\main” for WSL distro “docker-desktop”: creating distro destination dir “D:\program\Docker\data\main”: mkdir D:\program\Docker\data: Access is denied.
checking if isocache exists: CreateFile \wsl$\docker-desktop-data\isocache: The network name cannot be found.

权限问题,表明 Docker Desktop 在尝试创建 D:\program\Docker\data 目录时被拒绝访问。
说明安装前没有手动创建data目录,重做就行了。

4. 打开docker desktop时又一个弹窗报错:Docker Desktop distro installation failed

解决:查看具体错误:

ensuring main distro is deployed: deploying “docker-desktop”: preparing directory “D:\program\Docker\data\main” for WSL distro “docker-desktop”: creating distro destination dir “D:\program\Docker\data\main”: mkdir D:\program\Docker\data\main: Access is denied.
checking if isocache exists: CreateFile \wsl$\docker-desktop-data\isocache: The network name cannot be found.

还是权限问题。Docker Desktop 仍然无法在 D:\program\Docker\data\main 目录下创建所需的文件或目录。此外,WSL2 的 isocache 目录也无法访问,可能是由于 WSL2 配置问题或 Docker Desktop 的 WSL2 集成未正确设置。

解决方法:右键,以管理员身份运行 Docker Desktop

5. 错误代码: Wsl/InstallDistro/Service/RegisterDistro/ERROR_ALREADY_EXISTS

正在下载: Ubuntu
正在安装: Ubuntu
已存在具有所提供名称的分发。使用 --name 选择其他名称。
错误代码: Wsl/InstallDistro/Service/RegisterDistro/ERROR_ALREADY_EXISTS

解决:这个错误表明你已经安装了名为“Ubuntu”的WSL(Windows Subsystem for Linux)发行版。由于系统中已经存在同名的发行版,WSL无法再次安装同名的发行版。

6. 适用于 Linux 的 Windows 子系统没有已安装的分发。

解决:直接一步到位:wsl --install

7. 启动docker desktop后并没有创建wsl对应发行版

解决:那说明打开docker desktop 有报错弹窗,先解决弹窗错误再说。

参考

  1. https://blog.csdn.net/wangtcCSDN/article/details/137950545
  2. https://zhuanlan.zhihu.com/p/27384714765
  3. https://blog.csdn.net/pingxiaozhao/article/details/145285520
  4. https://blog.csdn.net/m0_51290571/article/details/144635357
  5. https://www.cnblogs.com/haima/p/18697360
  6. https://blog.csdn.net/weixin_45145684/article/details/144729149
### 将Docker安装Windows系统的D #### 创建必要的文件夹结构 为了确保顺利安装并配置Docker到指定路径,在开始之前需先建立所需的文件夹。具体来说,应该预先构建如下两个主要目录: - **程序安装路径**: `D:\Program Files\Docker` 作为 Docker Desktop 应用本身的安放处。 - **数据存储路径**: `D:\Program Files\Docker\data` 负责保存所有的镜像、容器以及卷等相关资料。 注意:务必使用双斜杠来定义这些路径,并且要提前手工创建上述提到的所有文件夹,防止后续操作过程中遇到权限不足或其他异常情况引发的错误[^1]。 #### 修改默认的数据存储位置 对于希望调整默认存放下属对象(如镜像、容器等)的位置而言,推荐采用WSL相关指令来进行迁移工作而不是通过图形界面中的选项完成此变更。这是因为直接利用设置功能可能无法达到预期效果甚至造成不必要的麻烦[^2]。 #### 执行实际安装过程 下载官方发布的适用于 Windows 平台版本的 Docker Desktop Installer.exe 文件之后启动它按照提示逐步推进直至结束。期间当涉及到选择安装组件时,默认情况下会选择适合大多数用户的典型方案;如果想要自定义某些特性,则可以选择定制化模式进行更细致的选择。 一旦顺利完成整个流程后,应当验证最终成果——即确认应用程序确实位于预设的目标磁分区之中,并且所有关联资源也均已妥善安置于所规划好的子目录之下。 如果有任何误操作产生了不期望的结果,比如建立了错误链接等问题发生的话,“mklink”实际上只是用来生成指向源位置的一个捷径而已,因此只需简单删除这个软连接再依照正确的方法重试一遍就可以了[^3]。 ```powershell # PowerShell脚本示例用于展示如何检查已安装的服务及其所在驱动器 Get-WmiObject Win32_Service | Where-Object {$_.Name -like "*docker*"} | Select PathName, StartMode, State ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值