Skip to content
60.Docker»01.Docker简介»LV010-windows-docker安装.md

LV010-windows-docker安装

一、准备工作

1. windows 架构

首先我们需要知道自己使用的 windows 架构,我们可以 win + R 调出运行框,然后输入以下命令:

bash
msinfo32

然后就会打开系统信息窗口,在系统信息窗口中,查找“系统类型”字段。如果显示“x64 基于 PC”,则操作系统是 64 位的,通常对应的是 AMD 架构;如果显示“ARM 基于 PC”,则处理器是 ARM 架构的。

image-20250929225740481

或者直接打开一个 cmd 命令行,输入下面的命令:

bash
Microsoft Windows [版本 10.0.26100.6584]
(c) Microsoft Corporation。保留所有权利。

C:\Users\20380>echo %PROCESSOR_ARCHITECTURE%
AMD64

一般输出值是以下之一:x86(用于 32 位 CPU)、AMD64(用于 64 位 CPU)或 ARM64。所以我的电脑是 AMD64 位的。

2. Hyper-V

注意:后面新版本的 docker 和 win10 或者 win11,有 WSL2 子系统,如果后面安装时已经成功勾选并使用了 WSL 2 作为后端,那么 不需要,也不应该再专门打开 Hyper-V 功能。因为 WSL 2 和 Docker 在这种配置下,已经使用了其内置的更轻量化的虚拟化技术。

Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。它实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。

因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。

img

在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行 Docker。Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox。这是 Docker Desktop for Windows 所使用的虚拟机。

这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!

我们打开【控制面板】→【程序】→【启用或者关闭 Windows 功能】→【Hyper-V】

image-20250929230148570

勾选图中相关的功能,然后 windows 会提示重新启动,这里我们那就重启一下好了。

3. WSL2

3.1 什么是 WSL2

什么是适用于 Linux 的 Windows 子系统 | Microsoft Learn

WSL 是 "Windows Subsystem for Linux" 的缩写,顾名思义,WSL 就是 Windows 系统的 Linux 子系统,其作为 Windows 组件搭载在 Windows 10 周年更新(1607)后的 Windows 系统中。

WSL 2 是 WSL 1 的升级版本,是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是 提高文件系统性能,以及添加 完全的系统调用兼容性

3.2 系统要求

想要安装 WSL 2 ,系统最低要求 Windows 10 系统

  • 对于 x64 系统:版本 1903 或更高版本,内部版本为 18362 或更高版本。
  • 对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。

或 Windows 11。

3.3 启用虚拟机功能

安装 WSL 2 之前,必须启用“虚拟化”可选功能,以管理员身份打开 PowerShell 并运行

powershell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • dism.exe:这是“部署映像服务和管理”工具。它是一个强大的命令行工具,用于管理 Windows 镜像、安装、卸载、配置和启用 Windows 功能。
  • /online:表示操作对象是当前正在运行的本地操作系统,而不是一个离线镜像文件。
  • /enable-feature:指定操作是“启用功能”。
  • /featurename:VirtualMachinePlatform:这是要启用的具体功能名称,即“虚拟机平台”。这个功能提供了核心的虚拟化支持,是 WSL 2 的依赖项。
  • /all:启用指定功能的所有父功能。这是一个便捷选项,确保所有必需的依赖项也会被自动启用。
  • /norestart:命令执行完成后 不立即自动重启 计算机。即使某些更改需要重启才能生效,系统也会等待我们手动重启。

重新启动 系统,以开启虚拟化。安装成功后,打开任务管理器即可看到虚拟化已启用:

image-20251001072532185

3.4 安装 WSL2

这里也不用特地安装,后面安装完 Docker Desktop 会自动弹出命令行让安装 WSL2 的,按照提示操作即可。

二、安装 Docker

1. 安装包下载

我们到官网直接下载: image-20251001065357057

2. 安装 Docker Desktop

第一步我们会来到这个配置页面:

image-20251001065313395

Tips:WSL2 是什么?什么是适用于 Linux 的 Windows 子系统 | Microsoft Learn

前面已经提到了,(WSL)是 Windows 的一项功能,适用于 Linux 的 Windows 子系统,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。

这里推荐勾选 WSL2,我们勾选上,然后 OK 下一步。然后等待一会,就安装成功了:

image-20251001070018428

这里我们点击 close and restart,这个时候电脑就会重启。默认是安装在这个目录下:

image-20251001071329770

3. 配置 Docker Desktop

电脑重启后,好像自行启动了 Docker Desktop:

image-20251001070351880

首次打开时,将出现 Docker 订阅协议,点击 Accept(接受)以继续。然后弹出了一个命令行窗口:

image-20251001070428578

我们按任意键,就会开始 WSL2 的安装:

image-20251001070540539

接着就打开 Docker Desktop 的主界面了:

image-20251001071553265

4. 汉化 Docker Desktop

有汉化包的:asxez/DockerDesktop-CN: Docker 汉化 Docker 中文版 Docker 汉化包 DockerDesktop 汉化 Docker Windows Docker MAC,然后就是网上搜一下,我这里没有做汉化了。

5. 安装成功了吗?

我们启动了 Docker Desktop 后,应该就可以在终端使用 docker 的命令了:

image-20251001071902465

这也表示安装成功了。然后可以运行:

bash
docker run hello-world

docker run hello-world 是一个简单的命令,用于验证 Docker 是否正确安装和运行。它会从 Docker Hub 拉取一个名为 hello-world 的镜像,并在容器中运行它。

image-20251001072001325

Docker 安装正常的话就会有以上打印信息,然后我们打开 Docker Desktop:

image-20251001072138517

会发现在 Image 这里出现了刚才的 hello-world

三、整体架构关系

在 Windows 系统上使用 Docker,本质上是让一个 Windows 环境去兼容和运行原生于 Linux 的容器技术。Docker Desktop、WSL 2 和 Hyper-V 在这个过程中各司其职,协同工作。

组件在 Windows Docker 环境中的角色
Docker Desktop集成的桌面化工具,提供图形界面并管理整个 Docker 运行环境。
WSL 2Docker 推荐的 核心运行环境,提供一个轻量级的、真正的 Linux 内核。
Hyper-V为 WSL 2 或传统 Linux 虚拟机提供底层的 虚拟化能力 支撑。
docker 命令用户与 Docker 服务交互的 桥梁,通过 Docker Desktop 被转发到 Linux 环境中的 Docker 引擎执行。
Windows 系统所有组件运行的 基石,提供基础的操作系统平台和硬件资源。
  • WSL 2 与完整虚拟机:WSL 2 虽然基于 Hyper-V 技术,但它不是一个传统的、独立的虚拟机。它是一个 高度优化、与 Windows 深度集成 的轻量级 Linux 环境,启动更快、资源占用更少,文件系统性能也更好。
  • Docker Desktop 是必需品吗:不是。我们可以手动在 WSL 2 中安装一个完整的 Linux 发行版,然后在该发行版内部直接安装 Docker 引擎。但 Docker Desktop 极大地简化了这个过程,它自动完成安装、配置、内核更新、网络设置等一系列工作,并提供了友好的图形界面,对于大多数开发者来说是更省心的选择。

【举个例子】:

  • Windows = 土地
  • Hyper-V = 地基和建筑法规(允许我们盖房子)
  • WSL 2 = 一个精心设计、与外界联通的轻量级工棚(里面运行着真正的 Linux 工人)
  • Docker Desktop = 整个项目的总承包商和经理(他负责搭建工棚、管理工人、与我们沟通)
  • docker 命令 = 我们和项目经理之间的对讲机

四、Docker 虚拟机

1. 进入 linux 环境

其实了解完上面架构关系,我们可以知道,就相当于,我们在 windows 上装了一个 linux 环境 WSL2,我们可以通过下面的命令进入这个 linux 环境:

shell
wsl

image-20251101134003007

我们进入根目录:

image-20251101134107199

这里就能看到我们 linux 下那熟悉的根文件系统啦。我们看一下 mnt 目录:

shell
sumu:/mnt# ls
docker-desktop-disk  host

会看到 docker-desktop-disk 和 host 两个目录。我们后面再看里面有什么。

2. 访问 windows 目录

我们进入 /mnt/host目录:

shell
sumu:/mnt/host# ls
c     d     e     wsl   wslg
sumu:/mnt/host# cd e/
sumu:/mnt/host/e# ls
$RECYCLE.BIN               03MyVideo                  PortableSoft               我的图片
01文件下载                 AI                         System Volume Information
02社交与娱乐               MyLinux                    pixcake

会发现,这里就是我们windows中的C盘、D盘等挂载的地方,可以直接从这里访问到windows中的文件。

3. docker-desktop-disk

我们再来看一下docker-desktop-disk这个目录,这个目录在没有运行docker-desktop的时候是空的:

shell
sumu:/# cd /mnt/docker-desktop-disk/
sumu:/mnt/docker-desktop-disk# ls
sumu:/mnt/docker-desktop-disk#

我们运行一下docker-desktop,然后我们重新使用wsl命令进入linux环境:

image-20251101135736166

会发现进来的时候用户名都不一样了。我们再次进入下面的目录:

shell
docker-desktop:/mnt/docker-desktop-disk# ls
data        isocache    lost+found

会看到这里已经有数据了,我们进入这个data目录:

shell
docker-desktop:/mnt/docker-desktop-disk/data# ls
cni                     desktop-containerd      kubeadm                 nfs
containerd              docker                  kubelet-plugins         wasm
containerd-stargz-grpc  dpkg                    machine-id

这里面是docker-desktop运行时的一些相关目录,我们进入这个docker目录:

shell
docker-desktop:/mnt/docker-desktop-disk/data/docker# ls
buildkit    engine-id   network     rootfs      stats       tmp
containers  jfs         plugins     runtimes    swarm       volumes

具体的我就没有去研究了,不过,后面学习创建数据卷的时候,创建的数据卷可以在 volumes 这个目录找到。

参考资料:

Docker 教程(图文讲解) - 犬小哈教程

一篇就够!Windows 上 Docker Desktop 安装 + 汉化完整指南(包含解决 wsl 更新失败方案)_docker 汉化-CSDN 博客

莫道桑榆晚 为霞尚满天.