Windows 10安装Docker Desktop实战:从WSL2配置到MySQL容器
2026/9/12 23:26:13 网站建设 项目流程

这两年我不下十次被朋友问到同一句话:"Docker到底怎么在Windows 10上装?"每次我给他们发官方文档,收到的回复基本都是"看不懂"或者"装了还是报错"。确实,Docker在Windows上的安装不像Linux那样一条命令搞定,它牵扯到虚拟化、WSL2、Hyper-V、系统版本、BIOS设置等等一堆前置条件,任何一个环节没对上,安装完的Docker Desktop就会以各种姿势罢工。

这篇文章就把我的实操经验完整梳理一遍。我会从Windows跑Docker的底层原理讲起,把安装前需要检查的环境项、Docker Desktop的安装配置、镜像加速、第一个容器实战(以MySQL 8.0为例)全部走一遍,最后把最常见的启动报错和排查思路整理出来。无论你是学生、运维、后端开发还是只是想把Redis、MySQL、GitLab这类服务跑在本机上,这篇文章都能帮你少走很多弯路。

1. Windows上跑Docker,必须搞明白的那道坎

1.1 容器为什么在Windows上"水土不服"

很多人都知道Docker容器比虚拟机轻量、启动快、资源占用小。但很少有人去追问一句:为什么Docker在Windows上安装这么费劲?这得从Docker的技术底座说起。

Docker本身并不是一个"虚拟机软件",它依赖Linux内核提供的一系列特性来实现隔离,比如namespace(命名空间)负责隔离进程、网络、文件系统,cgroup(控制组)负责限制CPU、内存等资源的使用。Linux容器之所以轻量,是因为所有容器共享同一个Linux内核,不需要为每个容器模拟一整套操作系统。

然而Windows的内核跟Linux内核完全是两码事,Windows进程无法直接跑在Linux内核上,反过来也一样。所以在Windows上安装Docker,本质上面临的问题是:Docker引擎需要Linux内核,而Windows没有。这就迫使Docker Desktop在Windows上必须引入一个轻量级虚拟机,在里面跑一个真正的Linux内核,Docker引擎跑在这个虚拟机的Linux内核之上,然后容器再共用这个Linux内核。

这也就是为什么安装Docker Desktop的电脑必须支持并开启硬件虚拟化功能,比如Intel的VT-x或者AMD的V。没有这个硬件辅助,轻量级虚拟机就跑不起来,Docker自然也就无法工作。

1.2 WSL2和Hyper-V,两条路到底怎么选

早期Docker Desktop在Windows上只能选择基于Hyper-V的虚拟化方案。Hyper-V是微软自家的虚拟机监控程序,功能很完整,但它在Windows 10家庭版上不可用,而很多个人用户的电脑恰恰就是家庭版系统,这是当年的第一道门槛。

后来微软推出了WSL2(Windows Subsystem for Linux 2),本质上是微软自己实现的一个轻量级虚拟机,专门用于在Windows里运行Linux子系统。WSL2不是传统意义上的完整虚拟机,它跟Windows主机共享内核调度,启动速度比Hyper-V快很多,资源占用也更小。Docker Desktop随之支持了基于WSL2的后端模式。

我给你的选型建议是:只要能装WSL2,就优先用WSL2模式。原因我列个表,一看就懂。

对比项WSL2后端Hyper-V后端
系统版本要求Windows 10 2004及以上(家庭版也可用)Windows 10专业版/企业版/教育版
启动速度秒级相对较慢
内存占用按需动态分配固定预留较多
与Windows文件互访通过\wsl$\路径直接访问,方便需要通过配置或共享文件夹
版本回退可切换回WSL1或Hyper-V切换麻烦
综合推荐度首选仅在无法用WSL2时考虑

顺便说一句,WSL2跟VMware、VirtualBox这类第三方虚拟机软件在同时使用时可能会产生虚拟化层的冲突。如果你电脑上装了VMware,装Docker之前最好先想清楚后端方案,否则可能启动时直接报虚拟化被占用的错误。这个细节后面第5章还会详细展开。

2. 安装前的环境体检:先别急着下载安装包

很多人兴致勃勃下载了Docker Desktop安装包,结果双击安装完一启动就报错,然后就卡住了。其实80%的启动失败都能在安装前通过几分钟的环境检查规避掉。这一节我把三个关键检查项按顺序讲清楚。

2.1 BIOS里的虚拟化开关

Docker Desktop启动失败时有一条非常经典的报错:virtualization support not detected,意思是检测不到虚拟化支持。

遇到这个报错,第一反应不是重装Docker,而是进BIOS确认虚拟化开关是否打开。不同品牌的电脑BIOS界面不太一样,但大体的路径是:开机时按F2、F10、Del之类的按键进入BIOS设置,找到Intel Virtualization Technology(Intel平台)或者SVM Mode(AMD平台),把它设为Enabled,保存退出重启。

有个细节容易被忽略:有些笔记本BIOS里虚拟化选项藏得比较深,可能在Advanced或者Processor子菜单下面。还有些品牌机默认会禁用虚拟化,甚至部分电脑的虚拟化开关被锁定,需要先设置BIOS密码才能修改。

判断电脑硬件虚拟化是否已启用,最简单的方法是打开任务管理器,切到"性能"选项卡,点击"CPU",看右下角有没有"虚拟化:已启用"这一行。如果显示"已禁用",别急着装Docker,先把BIOS里那项找到并打开再说。

虚拟化:已启用

只有看到这个状态,才说明硬件层面的条件已经满足。

2.2 Windows功能组件与版本核对

第二步是确认Windows 10的版本。按Win+R打开运行窗口,输入winver回车,会弹出版本信息对话框。

这里有两个关键点:

  • 版本号必须不低于2004(也就是20H1及更新的版本),WSL2在旧版Windows 10上要么不可用,要么配置起来极其费劲。
  • 系统版本决定了你能用哪种后端。家庭版不支持Hyper-V,但支持WSL2,所以家庭版用户老老实实走WSL2路线。

接下来需要开启两个Windows功能:适用于Linux的Windows子系统虚拟机平台

操作路径是:控制面板 -> 程序 -> 启用或关闭Windows功能,在弹出的窗口里把这两项勾上,点确定,系统会提示重启电脑。

这里我多说一句:很多人勾选时习惯性地只勾适用于Linux的Windows子系统,结果漏了虚拟机平台。这两个功能在WSL2模式下缺一不可,漏掉任何一个,WSL2都无法正常工作,Docker Desktop启动时大概率会卡在初始化阶段。

2.3 WSL2内核更新包:很多人漏掉的必装项

开启Windows功能并重启后,下一步是安装WSL2的内核更新包。这一步官方文档里写得很清楚,但实际交流中发现不少人会跳过。

你需要前往微软官网下载wsl_update_x64.msi这个安装包,下载后双击安装即可。安装完成后,打开PowerShell或命令提示符,执行:

wsl --set-default-version 2

如果命令执行成功,会提示有关信息:有关 WSL 2 的主要区别的信息,请访问...,这说明WSL2已被设置为默认架构。

有一个判断WSL2是否配置成功的小技巧:执行wsl -l -v命令,如果显示了发行版列表且VERSION列是2,说明WSL2正常。如果这里什么输出都没有,说明你还没有安装任何WSL发行版也没关系,Docker Desktop在安装过程中会自动处理一个专用的WSL发行版,但你最好先手动跑到这一步确认内核包没问题。

提示:如果你执行wsl --set-default-version 2时报错"WSL 2 需要更新其内核组件",基本就是内核更新包没装或者没装成功,重新安装wsl_update_x64.msi后再试。

3. Docker Desktop安装实践与镜像加速器配置

环境项全绿之后,安装Docker Desktop本身反而没什么难度了。但安装完成后的配置环节有几个坑,我一个个拆开说。

3.1 下载安装与关键勾选项

去Docker官网下载Docker Desktop for Windows安装包。下载时注意区分CPU架构,绝大多数人是x64平台,选对应版本即可。

双击安装包,进入安装界面后,有一个关键勾选项需要留意:使用WSL 2而不是Hyper-V。这个选项默认是勾上的,建议保持勾选,除非你明确知道自己需要用Hyper-V模式。

还有一个容易被忽略的问题:安装完成后是否立即启动Docker Desktop。我建议先不要立即启动,等我把下面第3.3节的镜像加速器配置做完再启动,这样能避免第一次启动时因为拉取某些基础组件超时而卡住。

登录账号这一步可以跳过。Docker Desktop现在会提示你登录Docker Hub账户,不登录也能正常使用核心功能,只是拉取镜像会有匿名用户的速率限制。等后面需要推送镜像到Docker Hub时再登录也不迟。

3.2 首次启动后的基础设置

第一次启动Docker Desktop时,它会自动完成WSL后端初始化,这个过程可能需要一两分钟。启动完成后,右下角任务栏会出现Docker的鲸鱼图标。点开主界面,进入Settings菜单,有几个地方值得按照你的实际需求调一下。

首先是General里的Start Docker Desktop when you sign in。如果电脑配置一般、平时也不天天用Docker,我建议取消勾选,改成手动启动,否则每次开机Docker都会默默吃掉一部分内存。

然后是Resources -> Advanced。这里可以调整Docker可用的CPU和内存上限。默认设置是CPU全给、内存按比例分配。如果你只是跑一两个容器做开发测试,给4GB内存就绰绰有余了,不用让它占满整个机器的内存。改完配置后点Apply & Restart生效。

最后是Resources -> WSL Integration。如果你装了多个WSL发行版,需要在这里勾选想让Docker集成的发行版。默认只有Docker Desktop自带的那个发行版被勾选,保持默认即可。

3.3 镜像加速器配置:告别拉取超时

用Docker就绕不开从镜像仓库拉取镜像这个操作。默认情况下,Docker会从Docker Hub官方仓库拉取镜像,但对于国内网络环境来说,直接连Docker Hub经常会出现"拉取超时"、"连接被重置"这类问题,很多新手在这一步就放弃了。

解决方案是配置镜像加速器。打开Docker Desktop的Settings,找到Docker Engine选项卡,在这里会看到一个JSON格式的配置项。在registry-mirrors字段中加入镜像加速地址,保存后点Apply & Restart让配置生效。

{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com" ] }

选择镜像加速地址时要注意几点:不要填写来历不明的第三方地址,优先使用有正式备案和长期维护的公共镜像服务;多个地址可以同时配置,Docker会按顺序尝试拉取,第一个挂了会自动尝试第二个。

配置完成后,可以执行docker info命令,在输出中找到Registry Mirrors那一行,如果列出了你配置的地址,说明加速器已经生效。

注意:配置加速器只能解决镜像拉取的问题。容器运行时如果需要访问外网资源,那是另一回事,别混淆了。

4. 第一个容器实战:用Docker跑MySQL 8.0试水

环境搭建好以后,不跑一个真实项目总觉得心里没底。这一节我选择一个最常见的场景——在Docker里跑MySQL 8.0,把整个操作链路走一遍。跑通这个例子,Docker的基本工作流你也就掌握了。

4.1 docker run命令参数的逐一拆解

打开PowerShell或Windows Terminal,执行下面这条命令:

docker run -d \ --name mysql8 \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -e TZ=Asia/Shanghai \ -v D:/docker-data/mysql8:/var/lib/mysql \ mysql:8.0

第一次执行时会先拉取镜像,配置了加速器之后,拉取速度应该比较快。拉取完成后容器会自动启动。我来逐条解释每个参数是干什么的,理解这些参数之后,其他容器你基本也就会跑了。

参数作用为什么需要
-d后台运行容器不加的话,终端会被容器的日志输出占住
--name mysql8给容器命名后面用docker stop mysql8操作时不用记容器ID
-p 3306:3306端口映射,宿主机3306端口转发到容器3306端口宿主机上的客户端工具(如Navicat)通过localhost:3306访问容器内的MySQL
-e MYSQL_ROOT_PASSWORD=123456设置环境变量MySQL官方镜像用这个变量初始化root密码
-e TZ=Asia/Shanghai设置容器时区不设置的话容器默认是UTC时区,时间会比北京时间晚8小时
-v D:/docker-data/mysql8:/var/lib/mysql数据卷挂载,宿主机目录映射到容器目录MySQL数据实落盘在D盘,删容器不丢数据

这里我要特别强调-v参数。MySQL容器如果删除了,容器内部的数据也会一并消失,除非你把数据目录挂载到宿主机。这就是为什么生产环境部署任何有状态服务(MySQL、Redis、PostgreSQL)时,数据卷挂载是必需品,而不是可选项。

4.2 Windows路径与容器路径的挂载技巧

关于-v参数有个Windows特有的坑:路径写法。

WSL2模式下,Docker Desktop的路径映射规则跟Windows原生路径不太一样。理论上D:/docker-data/mysql8这种写法在Windows命令提示符或PowerShell下用是没问题的,Docker Desktop会自动帮你转换。但如果你在WSL终端里执行docker命令,路径就要写成Linux风格的/mnt/d/docker-data/mysql8

为了避免路径写错,我的习惯是:往Docker的-v参数里写路径时,统一先在Windows文件资源管理器里创建好目标目录,然后用绝对路径。目录不存在时Docker会自动创建,但权限可能会有点怪,特别是跟权限有关的应用。

此外还有一个容易踩的坑:Docker Desktop对于Windows路径中的盘符大写小写不敏感,不会因为d:D:的差异出问题。但Windows OneDrive同步目录、中文路径、带空格的路径都可能引发不可预知的挂载问题。稳妥起见,所有挂载目录都不要放在OneDrive或带中文/空格的路径下。

4.3 验证MySQL容器是否真正可用

容器启动后,依次执行下面几个命令验证状态:

docker ps

这条命令会列出所有运行中的容器。如果mysql8出现在列表里,STATUS列是Up,说明容器运行正常。

docker logs mysql8

查看日志。MySQL初始化过程中会输出大量日志,看到最后出现类似ready for connections的语句,说明数据库已经就绪。

docker exec -it mysql8 mysql -uroot -p

直接进入容器内部执行MySQL客户端。输入密码(就是上面环境变量里设置的123456),出现mysql>提示符就大功告成了。

外面用Navicat、DBeaver这类GUI工具连接也验证一下,主机填127.0.0.1,端口3306,用户名root,密码就是你设置的那个。能连上就说明端口映射和网络链路都是通的。

4.4 容器生命周期管理:别怕删容器

很多新手第一次用Docker时不敢删容器,总觉得容器是个很"重"的实体。其实容器本身是临时的,命令跟虚拟机完全不一样。

docker stop mysql8 # 停止容器 docker start mysql8 # 启动已停止的容器 docker restart mysql8 # 重启容器 docker rm mysql8 # 删除容器(数据还在,因为挂载了数据卷) docker rmi mysql:8.0 # 删除镜像

重点理解:docker rm删除的是容器本身,不是数据。数据在数据卷里,也就是当初-v指定的宿主机目录D:/docker-data/mysql8里。只要这个目录还在,重新执行一次docker run命令,MySQL的数据就原封不动地回来了。

这一点跟虚拟机有着本质区别。虚拟机删了,虚拟磁盘文件里的数据就没了;Docker配合数据卷,容器可以随意替换、重装、升级,数据始终安全。理解了这层关系,你就掌握了Docker使用的核心心法。

5. 启动失败与运行异常的排查思路

即便准备工作做足了,实际使用Docker Desktop时还是会遇到各种问题。这一节我把我真实遇到过的、以及社群中被问得最多的几类问题整理成排查手册。不像网上那些零散的问答,我把完整的排查链路都写出来。

5.1 "Virtualization support not detected"的完整排查链路

这是Docker Desktop在Windows上最常见的启动报错,没有之一。遇到这个错误,按下面的顺序逐项检查。

第一步:任务管理器确认虚拟化状态。打开任务管理器 -> 性能 -> CPU,看右下角"虚拟化"行。如果显示"已禁用",直接跳转到第二步;如果显示"已启用",但你依然收到这个报错,则跳转到第三步。

第二步:进BIOS开启VT-x/SVM。这一步前面第2.1节已经讲过,这里不再重复。

第三步:检查第三方虚拟化软件冲突。这一步是最多人忽略的。VMware Workstation、VirtualBox这类软件会占用虚拟化层,有时会导致Docker Desktop的虚拟化检测失败。解决方案是关掉这些软件,再启动Docker Desktop试试。

第四步:检查Windows功能里的Hyper-V组件状态。有时候Hyper-V相关的功能处于半开半关的状态,也会干扰虚拟化检测。在管理员权限的PowerShell里执行:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

执行后重启,再启动Docker Desktop。

第五步:仍然不行的话,用管理员权限PowerShell执行bcdedit命令检查Hypervisor是否已启动:

bcdedit /set hypervisorlaunchtype auto

如果之前安装过某些虚拟机工具把hypervisor启动类型改成了off,这条命令能把它改回来。改完重启生效。

5.2 WSL2相关的内核错误

Docker Desktop在WSL2模式下启动时,有两条常见的报错信息:

  • WSL 2 requires an update to its kernel component
  • The WSL 2 kernel version is too old

这两条本质上是同一个问题:WSL2内核组件缺失或版本过旧。解决方案是重新安装wsl_update_x64.msi。安装完以后,在PowerShell里执行:

wsl --update wsl --shutdown

wsl --shutdown会彻底关闭所有WSL虚拟机,然后重新启动Docker Desktop。这个组合拳能解决绝大多数WSL2内核相关的"疑难杂症"。

补充一个细节:wsl --update需要Windows 10 2004及以上版本才能使用。如果你的系统版本过旧,wsl命令可能根本不认识--update这个参数,这种情况下先把系统更新到最新补丁再看。

5.3 vmmem进程内存占用过高

Docker Desktop跑起来之后,你可能会在任务管理器里看到一个叫vmmem的进程内存占用特别高。这个进程是WSL2虚拟机的内核进程,Docker跑得越久,它占用的内存可能就越高。因为WSL2的动态内存分配机制导致它不会主动把空闲内存归还给Windows。

解决办法是创建一个.wslconfig配置文件,放在用户主目录下(C:\Users\你的用户名\.wslconfig):

[wsl2] memory=4GB processors=2 swap=2GB

保存文件后,在PowerShell里执行wsl --shutdown,再启动Docker Desktop。这样WSL2虚拟机最多只使用4GB内存,杜绝了内存失控的风险。

注意别把memory设置得太低,低于2GB的话Docker跑一些稍微大的镜像可能直接OOM。

5.4 镜像拉取超时或失败

镜像加速器配置了,拉取还是偶尔超时怎么办?这里分几种情况。

如果docker pull卡在Waiting状态很长时间,首先确认加速器配置有没有生效。执行docker info,看Registry Mirrors字段。如果配置了多个镜像加速地址,可以检查一下第一个地址是否已经失效,把它换成新的可用地址,保留备用地址。

如果是某个特定镜像拉取失败,比如docker pull mysql:8.0报某个层的下载错误,大概率是网络波动导致的。先执行docker system prune清理掉一半下载的缓存,再重新拉取。

这里顺带说一句:docker system prune是个很有用的清理命令,会删除所有停止的容器、未使用的网络、悬空镜像和构建缓存。我一般是每周执行一次,能释放不少磁盘空间。不过它也会清理掉所有停止的容器,如果你有某些停止状态的容器还想留着,先docker start启动了再清理,或者用docker rm把要丢弃的容器主动删掉。

5.5 Docker Desktop一直卡在开机启动画面

这个问题我遇到过一次,表现是点击Docker Desktop图标后,鲸鱼图标一直在加载动画,很久都进不去主界面。

排查思路是:先看右下角托盘图标,如果图标一直转圈,多半是WSL后端没就绪。打开PowerShell执行wsl -l -v看有没有卡在Stopped状态的发行版。如果有,执行wsl --shutdown强制关闭,然后重启Docker Desktop。

如果转圈问题依然存在,检查是不是Windows时间不对。这个原因听起来匪夷所思,但确实发生过——系统时间偏差过大可能导致Docker Desktop跟镜像仓库的TLS握手失败,表现就是启动界面卡住不动。同步一下时间再启动Docker,问题就消失了。

6. 进阶一步:从单容器到编排,认识Docker Compose

当你习惯了用docker run跑单个容器之后,下一个自然的需求就是:多个容器怎么一起管理?比如你要在本地搭建一套开发环境,包含MySQL、Redis、后端服务,用docker run分别启动也不是不行,但每次都要重敲一堆命令,容器多了以后维护成本直线上升。这就是Docker Compose登场的场景。

6.1 为什么需要Compose:一个命令拉起整套服务

Docker Compose的核心思想是"基础设施即代码"。你只需要写一个compose.yaml文件,把要运行的所有容器、网络、数据卷声明在里面,然后执行一条docker compose up -d,整套服务就全部拉起来了。

这个文件是可版本化的、可评审的、可复现的。换了一台新电脑,把compose.yaml文件和挂载的数据目录拷过去,一条命令就能还原出一模一样的服务环境。而用docker run的话,不光命令难记,还容易漏参数。

6.2 一个实际可用的compose.yaml示例

我来演示一个典型的场景:MySQL 8.0加Redis 7,这是大多数后端开发本地调试的基本套餐。

先创建一个项目目录,比如D:\dev-env,在里面新建compose.yaml文件:

services: mysql8: image: mysql:8.0 container_name: dev-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 123456 TZ: Asia/Shanghai ports: - "3306:3306" volumes: - ./data/mysql:/var/lib/mysql command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci redis: image: redis:7 container_name: dev-redis restart: unless-stopped ports: - "6379:6379" volumes: - ./data/redis:/data command: - redis-server - --appendonly yes

D:\dev-env目录下打开PowerShell,执行:

docker compose up -d

两条命令的输出分别是MySQL8.0和Redis7的容器启动信息。再执行docker compose ps查看所有服务状态。

这个文件里有几个值得注意的细节:

  • restart: unless-stopped:容器意外退出时自动重启,除非你手动stop它。对于本地开发环境来说很实用,Docker Desktop一启动,所有服务自动恢复。
  • command:自定义容器启动命令。MySQL这里通过命令行参数设置了utf8mb4字符集;Redis这里开启了AOF持久化。
  • ./data/mysql:相对路径的写法。Compose会把当前目录(也就是compose.yaml所在目录)作为基准路径。这意味着整个项目目录是可以完整迁移的。
  • Compose自动创建了一个默认网络,两个容器之间可以通过服务名互相访问。比如同网络下的后端服务要连MySQL,主机名填mysql8而不是localhost

6.3 Compose的日常运维命令

把服务跑起来之后,日常运维基本就是下面这一套命令:

命令用途
docker compose up -d创建并后台启动所有服务
docker compose ps查看服务状态
docker compose logs -f跟踪所有服务日志
docker compose logs -f mysql8只跟踪mysql8的日志
docker compose restart重启所有服务
docker compose down停止并删除所有服务(数据卷还在)
docker compose down -v停止并删除服务且删除数据卷(谨慎使用)

特别提醒down -v这条命令,-v参数会连带删除数据卷,也就是说MySQL的数据会全部消失。我见过不止一个同事手滑跑过这条命令之后崩溃的。日常清理用down就够了,down -v一定想清楚再用。

6.4 从开发到部署:Compose还能做什么

Compose不是只能用在本地开发。很多小团队甚至直接用Compose文件做生产环境的容器编排。这里我不展开讲生产环境部署的细节,但想提一个常见的应用场景。

像GitLab、Jenkins这类重量级开发工具,官方都提供了现成的docker-compose.yml模板。你在网上搜"GitLab docker compose"或者"Jenkins docker compose",能找到大量经过验证的配置。这些工具的安装配置在裸机环境下是出了名的繁琐,尤其是GitLab,光是依赖组件就够折腾半天的。用Compose部署,把官方模板下载下来,改几个端口和路径,一条命令就起来了。

在Windows上做本地开发测试,这已经足够用了。等哪天需要上生产环境或者集群环境,再考虑Kubernetes这类容器编排平台。

7. 写在最后:我踩过的一些坑和当前的最佳实践

文章写到这里,把Windows 10上安装Docker Desktop的全流程都过了一遍。最后分享几个我在实际使用中沉淀下来的习惯。

第一,所有数据类容器(数据库、缓存、消息队列)全部用Compose管理,数据卷统一放在项目的./data目录下。这样备份数据就是复制整个目录,恢复数据就是把目录拷回去再docker compose up -d,简单粗暴但极其有效。

第二,定期执行docker system prune清理悬空镜像和构建缓存。Windows的磁盘空间本来就比Linux紧张,我见过不少人C盘被Docker的镜像和构建缓存吃满,最后只能重装系统。

第三,Windows上的Docker Desktop更适合做开发调试环境,不建议在Windows上长期跑生产服务。生产环境还是建议用Linux服务器,不管是云主机还是物理机,Docker在Linux上才是完全体,性能和稳定性都更可靠。如果确实需要在Windows上跑服务,也尽量用WSL2后端并做好资源限制。

这套流程我前前后后给不下十个人指导过,从纯粹的Docker新手到想在本机搭一套GitLab+MySQL+Redis环境的同事,按这个路径走下来基本都能顺利跑通。如果安装过程中遇到这篇文没有覆盖到的报错,不妨把报错信息完整贴到搜索引擎里,通常能找到对应的解决方案。Docker的生态已经足够成熟,你遇到的坑,大概率不是第一个踩进去的人。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询