《手把手实战|VMware+Docker 双引擎协作:Windows 电脑安装 Docker Desktop 全攻略(含 CentOS 虚拟机避坑指南)》
目录
一、核心原理:避免 Hyper-V冲突
二、安装 Docker Desktop 前的准备
1. 检查系统兼容性
2. 启用 Hyper-V(为 Docker Desktop 准备)
3. 安装 Docker Desktop
三、Hyper-V 和 WSL 2 的关系
1、核心结论:Hyper-V 是必需的
2. WSL 2 的作用和原理
四、切换使用场景:Docker Desktop <-> 虚拟机
1. 禁用 Hyper-V(切换到 VMware 模式)
2. 验证虚拟机启动
3. 切换到 Docker Desktop(启用 Hyper-V)
4. 切换回虚拟机(禁用 Hyper-V)
四、在 Docker 中运行 Redis
1. 拉取 Redis 镜像
2.运行 Redis 容器
3. 验证 Redis 容器是否运行
4. 停止和删除到 Redis 容器
未完待续.......
如题,博主已经安装了虚拟机 VMware Workstation Pro,并且在虚拟机上安装了 CentOS7,然后在CentOS7中安装了 Docker。
但是,博主现在又想安装 Docker Desktop了,为什么呢?因为所以科学道理,哈哈哈。其实并不是,只是觉得 Docker 桌面版比较方便一点,方便启动各种容器,虚拟机每次都要跨着一层去执行,非常的不方便,所以我选择了安装 Docker Desktop。
废话不多说,以下是博主自己的安装教程,可以借鉴一下,如果遇到一些问题,直接扔给 AI,大部分问题都是可以完美解决的,相信我,在AI迅速发展的时代,学会使用 AI,非常重要!!!!
一、核心原理:避免 Hyper-V冲突
VMware Workstation Pro 和 Docker Desktop 冲突的根源是 Hyper-V 虚拟化技术的独占性:
- Docker Desktop 需要启用 Hyper-V(Windows 内置虚拟化)。
- VMware Workstation Pro 需要禁用 Hyper-V(使用自身的虚拟化技术)。
解决方案:分时切换 Hyper-V 状态(每次仅使用其中一个)。
二、安装 Docker Desktop 前的准备
1. 检查系统兼容性
- 确保 Windows 是 64 位专业版 / 企业版 / 教育版(家庭版可能不支持 Hyper-V)。
- 启用 BIOS 中的 虚拟化技术(Intel VT-x/AMD-V,已默认开启则忽略)。
2. 启用 Hyper-V(为 Docker Desktop 准备)
操作步骤:
- 以管理员身份打开 PowerShell(Win+X → 选择 “Windows PowerShell(管理员)”)。
- 输入以下命令启用 Hyper-V 及相关功能:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -All
执行上述代码的过程,会重启电脑,需要等待一定的时间。
3. 安装 Docker Desktop
操作步骤:
- 访问 Docker 官网 下载 Windows 版本安装包(
.exe
)。 - 双击安装包,勾选 “Install required components for WSL 2”(推荐),点击 “OK” 开始安装。
- 安装完成后,重启电脑。
我在进行这一步的时候,没有重启电脑,我估计是我之前执行上面的那几条命令的时候,已经重启过电脑了,该配置的已经都配置好了!!!
不过,在我第一次什么都没有配置的时候,直接安装 docker desktop 的时候,安装完以后,第一次打开 docker desktop 的时候,有一个选项是重启电脑,我当时以为有问题,就没有继续进行下去。
- 首次启动 Docker Desktop 时,等待初始化(自动下载 Linux 内核等组件)。
这一步可能需要耗时比较久,因为初始化它会下载好多东西
- 验证安装:打开 PowerShell,输入:
docker --version
三、Hyper-V 和 WSL 2 的关系
1、核心结论:Hyper-V 是必需的
-
Docker Desktop 的底层依赖:
- WSL 2(Windows Subsystem for Linux 2) 是 Docker Desktop 在 Windows 上的推荐运行方式,但 WSL 2 本身基于 Hyper-V 虚拟化技术。
- 无论选择 Hyper-V 后端 还是 WSL 2 后端,Docker Desktop 都需要 Hyper-V 支持(WSL 2 是 Hyper-V 的上层应用)。
-
VMware 与 Hyper-V 的冲突:
- VMware Workstation Pro 使用自研的虚拟化技术,与 Windows 内置的 Hyper-V 互斥(不能同时启用)。
- 启用 Hyper-V(或 WSL 2)时,VMware 虚拟机无法运行;反之,禁用 Hyper-V 时,Docker Desktop 无法运行。
2. WSL 2 的作用和原理
组件 | 功能描述 | 与 Hyper-V 的关系 |
---|---|---|
Hyper-V | Windows 底层虚拟化平台,提供硬件级虚拟化支持。 | 基础依赖(必须启用) |
WSL 2 | 运行 Linux 二进制文件的兼容层,基于 Hyper-V 虚拟机实现高性能 Linux 环境。 | 依赖 Hyper-V(启用 WSL 2 自动启用 Hyper-V) |
Docker Desktop | 通过 WSL 2 或 Hyper-V 运行 Linux 容器。 | 依赖 WSL 2 或 Hyper-V(两者均依赖 Hyper-V) |
总结:
使用 WSL 2 不等于绕过 Hyper-V,而是通过 Hyper-V 提供更高效的 Linux 环境。因此,Hyper-V 是 Docker Desktop 的必要条件,无论选择哪种后端。
四、切换使用场景:Docker Desktop <-> 虚拟机
1. 禁用 Hyper-V(切换到 VMware 模式)
操作步骤(需要使用虚拟机时执行):
- 以管理员身份打开 PowerShell。
- 输入以下命令禁用 Hyper-V:
bcdedit /set hypervisorlaunchtype off
- 打开 本地组策略编辑器(Win+R → 输入
gpedit.msc
):- 导航至 “计算机配置” → “管理模板” → “系统” → “Device Guard”。
- 双击 “打开基于虚拟化的安全性”,选择 “已禁用”,点击 “应用”。
- 打开 控制面板 → “程序和功能” → “启用或关闭 Windows 功能”,取消勾选 “Hyper-V” 和 “虚拟机平台”,点击 “确定”。
- 重启电脑。
2. 验证虚拟机启动
- 打开 VMware Workstation Pro,启动 CentOS 虚拟机,确认无报错(如 “Device/Credential Guard 不兼容”)。
- 检查 CentOS 内的 Docker 服务:
sudo systemctl status docker # 确保服务运行
docker ps # 验证容器状态
3. 切换到 Docker Desktop(启用 Hyper-V)
操作步骤:
- 以管理员身份打开 PowerShell,输入:
bcdedit /set hypervisorlaunchtype auto
- 打开 本地组策略编辑器,将 “打开基于虚拟化的安全性” 设置为 “未配置”。
- 启用 控制面板 中的 “Hyper-V” 和 “虚拟机平台”。
- 重启电脑后,启动 Docker Desktop。
4. 切换回虚拟机(禁用 Hyper-V)
重复 “三、1. 禁用 Hyper-V” 步骤。
五、在 Docker 中运行 Redis
首先先说明,双击打开 Docker Desktop 以后,无论是在命令行中使用命令的方式使用 Docker 还是在 图形化界面中使用 Docker,效果都是一样的。
1. 拉取 Redis 镜像
博主这里是在 图形化界面当中 拉取了镜像,为什么么呢?因为图形化界面可以看到各种版本的 Redis镜像文件,而且非常方便的选择版本。当然也可以选择命令行的形式
docker pull redis
此命令会从 Docker Hub 上拉取 Redis的官方镜像
当然也可以指定特定的版本号,如下:
docker pull redis:6.2
2.运行 Redis 容器
docker run -d --name my-redis -p 6379:6379 redis
这里博主,又选择了通过 命令行的方式来运行,为什么呢?主要是 Docker Desktop 中的界面有点花里胡哨,然后都是英文(英文不好呜呜呜呜呜),然后可以配置很多很多的配置项。
感觉使用命令行非常的清晰易懂,如下:
-d
:以守护进程模式运行容器,即让容器在后台运行。--name my-redis
:为容器指定一个名称,这里是my-redis
,你可以根据需求修改。-p 6379:6379
:将容器内部的 6379 端口映射到宿主机的 6379 端口,这样就能通过宿主机的 6379 端口访问 Redis 服务。redis
:指定要使用的镜像名称。
3. 验证 Redis 容器是否运行
docker ps
如果 Redis 容器正在运行,你会在输出中看到 my-redis
容器的信息。
4. 停止和删除到 Redis 容器
docker stop my-redis
docker rm my-redis
未完待续.......
我想大家安装 Docker,主要就是为了方便配置MySQL和Redis的环境吧,如果不出意外,通过上面的步骤,你已经成功安装了,并且运行了Redis,这样子在项目中就可以直接连接数据库进行使用了。
未完待续,等待博主,后续使用Docker的经验逐渐增多,再进行补充。
还有很多功能值得我们去探索以及发现!!!!!!!!!