Featured image of post 2025年了,还需要在Windows下安装docker-desktop环境么?

2025年了,还需要在Windows下安装docker-desktop环境么?

起因

我有一个朋友,想要学习AI 方面的案例。但是苦于手头没有Linux server,就问我能不能在他的windows电脑上跑docker-compose 项目

我稍微折腾后发现:在2025年的今天,想要在windows上运行docker容器,还是有几个门槛在这里的——很容易因为一些小的设置卡好几个小时。所以,在这里汇总并分享下。

如果对你有帮助,帮忙点个赞支持一波 ^^

评估是否有必要

就像上面提到的,是因为条件受限才考虑在windosw上跑docker 应用。

如果以下情况满足3条以上,那这种情况适合你——

  1. 手头没有类Linux环境(如 Ubuntu、Rocky)
  2. 手头有运行Linux的环境,但是硬件不是x86架构的
  3. 偶尔跑一些docker项目(即docker 应用不需要 7*24 长时间运行)
  4. 只运行docker 应用,不需要开发docker应用

另外在windows 上运行docker 应用对软硬件系统也是有要求的:

  1. win10 要求21h2以上版本 + 64位 家庭版 或 专业版 或 企业版
  2. win11 要求22h2以上版本 + 64位 家庭版 或 专业版 或 企业版
  3. 需要CPU支持虚拟化技术(Intel VT-x 或 AMD-V),并在BIOS 中启用
  4. 4GB 以上内存
  5. 需要有管理员权限,以便安装docker-desktop程序和windows组件

微软官方文档在这里

安装

如果以上的诸多条件和限制,还没有打消你的念头。好吧,头铁的朋友,这篇文章就是为你而写的!

0. 准备工作

  • 检查上述软硬件要求是否满足

  • 需要自备梯子,主要用于拉取docker image文件

1. 安装wsl

wsl 全名为 “Windows Subsystem for Linux”,为windows 下运行docker 的底层环境——毕竟windows 和 Linux 是两套内核。

安装起来倒是不复杂,一条命令:

1
wsl --install

重启后,查看wsl版本信息:

2. 安装docker-desktop

从docker 官方网站 下载Docker-Desktop for windows AMD64。

双击docker-desktop安装包执行安装,安装完成后“重启”电脑。

3. wsl 和 docker-desktop 关联成功

重启后,会看到wsl 启用成功的通知:

wsl 安装成功

因为,是先安装的wsl 后安装的docker-desktop。docker-desktop 此时已经默认调用了wsl 集成环境。(不用手动修改)

使用命令也可以看到,两者已经关联并运行了:

同时,电脑中会多出一个Linux 的企鹅图标。不用管它。

4. 修改docker-desktop 设置

在docker-desktop 的设置中,有三处需要修改。

  • 因为,docker-desktop 安装时默认使用C盘保存 docker 镜像文件。

下载镜像文件多了后,很容易导致C 盘空间占满。所以这一步,需要手动更改镜像文件保存路径(image location)。

例如,我改为 *E:\docker_images* 目录下:

  • 另外,还需要指定代理环境(使用梯子代理服务端口),以便后续拉取docker 镜像:
  • [Option] 如果没有梯子,可以尝试使用国内的docker 镜像站(注:可能不稳定):

拉取镜像&验证

参照以之前n8n 自部署 (nxlan.cn)初始化案例。这里先创建n8n项目目录"n8n-data“和 “docker-compose.yaml“项目文件。

然后使用以下命令启动该项目——

1
docker compose up -d

启动成功日志——

同样的,docker-desktop 中的images 界面可以看到刚刚拉取到的镜像文件和相关信息(版本,大小,运行情况):

最后,登录本地n8n环境。证明所有安装完成。

补充说明

v4.45版本额外操作

[v4.45] 版本的docker-desktop 版本有bug,无法在“设置”中修改images镜像保存位置,所以只能通过powershell 命令行操作。

注: 经测试[v4.48] 版本修复了这个bug,无需以下命令行方式修改,通过图形化设置界面就可以修改。

1 临时关闭wsl 服务

1
wsl --shutdown

2 导出并备份wsl 原有数据文件

1
2
#先备份到E盘docker_images目录下
wsl --export docker-desktop E:\docker_images\DockerDesktopWSL.bak

3 注销原有docker-desktop 数据文件

1
wsl --unregister docker-desktop

4 导入并重新关联新位置的docker-desktop 数据文件

1
2
#重新导入备份数据文件至硬盘新位置——E:\docker_desktop\DockerDesktopWSL
wsl --import docker-desktop E:\docker_desktop\DockerDesktopWSL E:\docker_desktop\DockerDesktopWSL.bak --version 2

wsl 运行环境限制

目前测试发现,受限于wsl的安全策略:

windows环境下的docker实例,访问某个目录中的数据时,不能使用相对路径,必须使用绝对路径

例如,希望把 docker-compose.yaml 所在目录下的 app\data同时挂载给 docker A,不能这么写——

1
2
    volumes:
      - ./app/data:/docker-app/data

而是需要使用绝对路径——

1
2
    volumes:
      - /mnt/host/app/data:/docker-app/data

后续如果需要卸载wsl和docker-desktop

卸载docker-desktop 和平常卸载软件没什么区别。

卸载 wsl 也是一句命令即可:

1
wsl --uninstall

Licensed under CC BY-NC-SA 4.0