Windows Docker Desktop 安装与配置

author: abinng date: 2026-01-31 23:44 createDate:2026-01-31 20:27

前言

WSL2 安装与配置中,我写到了配置Docker Desktop,但是鉴于Docker安装的篇幅可能不适合在一个标题下面写完,故又开了一篇,也好按照笔记名来查找。

当然本篇不是直接在WSL2上安装Docker Engine,而是Docker Desktop

所以,不用多说了吧,本篇主要是面向初学者的 Windows Docker Desktop 安装与配置

安装 Docker

下载安装包

去 Docker 官网 下载并安装 Docker Desktop for Windows

该下载哪个(这里只管windows的)?? Win+R输入cmd,接着输入echo %PROCESSOR_ARCHITECTURE%,会出现AMD64或者ARM,接着下载对应架构的就好

自定义安装位置

找到安装包的位置,注意先别急着双击打开,在该文件夹以管理员身份打开CMD,注意不是PowerShell

我们用命令行安装,来指定安装位置,例如安装在 D:\Docker,你可以自行修改参数改变安装位置

1
start /w "" "Docker Desktop Installer.exe" install --installation-dir="D:\Docker"

安装时留意勾选 “Use WSL 2 instead of Hyper-V”(一般默认勾选)。

安装完成后,需要注销或重启电脑。

好,欢迎回来,我们继续

启动 Docker Desktop,接受协议 (Accept),接着我们登录一下,用Github授权就好。

成功进入主界面

修改镜像存储位置

Docker 默认会把所有拉取的镜像 (Images) 和容器 (Containers) 数据放在 %LOCALAPPDATA%/Docker/wsl 下,也就是你的 C 盘。如果不改,几个月后你的 C 盘就会莫名其妙少几十个 G。

先创建一个存放DockerData的文件夹,给一下权限,例如创建D:\WSL\DockerData

右键文件夹,点击属性,之后点击安全,接下来跟着图操作

接着设置界面,选择一下刚刚创建的DockerData,注意DockerDesktopWSL是他自动加上的

配置国内镜像源 / 代理

由于网络原因,直接 docker pull 拉取镜像经常会超时。我们有两种方案,推荐方案二

方案一:配置国内镜像加速(目前不太稳定)

很多国内大厂的公开镜像源最近都不太稳定,但还是可以试一下。

  1. 进入 Settings -> Docker Engine
  2. 在右侧的 JSON 编辑框中,添加 registry-mirrors 字段。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://dockerhub.timeweb.cloud"
]
}

(注:镜像源地址时效性很强,失效就得换,如果上面这些失效了,建议使用方案二)

方案二:配置 HTTP 代理(推荐,比较稳)

如果你在上一篇 WSL2 教程中已经配置好了科学上网环境,直接让 Docker 走代理是最稳的。

进入 Settings -> Resources -> Proxies,打开 Manual proxy configuration 开关。

在 Web Server (HTTP) 和 Secure Web Server (HTTPS) 中填入你的代理地址

  • 两个都是 http://127.0.0.1:7897 ,注意第二个别写https,虽然他说的是https
  • 注意端口号看你自己的代理软件设置,打开LAN连接。

Docker 试图与你的代理服务器建立一个 加密的 TLS 连接,但你的代理软件在这个端口上只接受 普通的 HTTP 连接,所以它直接挂断了(EOF)。

在 Docker Desktop 的设置里,即使是 HTTPS 代理(Secure Web Server),填写的地址协议头通常也应该是 http://,而不是 https://

还有第三个配置行(他的意思是 为这些主机和域名禁用代理设置)

为什么要忽略?

通常你的代理软件(比如 Clash、v2ray 等)是用来访问国外网站(如 Docker Hub 拉取镜像)的。但是,当你的容器需要访问:

  • 你本机运行的服务(localhost)
  • 你公司的内网服务器
  • 你局域网里的其他电脑
    这些流量如果也绕一圈代理服务器,不仅速度慢,而且很可能直接无法访问(因为代理服务器在公网,访问不到你的内网)。

如果你使用的镜像服务是国内的,那么提交、下载镜像的时候又不应该走代理,也需要在代理上额外配置一下。

如:使用阿里云镜像的代理配置 localhost,127.0.0.1,*.aliyuncs.com

怎么填呢??你可以直接将下面的字符串复制进去

1
localhost,127.0.0.1,host.docker.internal,*.docker.internal,*.aliyuncs.com
  1. localhost 和 127.0.0.1
    • 作用: 本地回环地址。
    • 如果不填: 容器访问本机的服务可能会失败,或者被代理软件拦截。
  2. host.docker.internal
    • 作用: 这是 Docker Desktop 专门为 Windows/Mac 提供的特殊域名,允许容器内部直接访问宿主机(你的 Windows 电脑)。
    • 如果不填: 你在容器里代码写连接 host.docker.internal:3306 访问宿主机的 MySQL 时,请求会被发到代理服务器去,导致连接超时。
  3. *.docker.internal
    • 作用: 涵盖所有 Docker 内部的 DNS 解析。
  4. *.aliyuncs.com
    • 作用: 是阿里云的核心域名,主要用于存放和分发 Docker 镜像,如果你需要提交、下载上面的镜像,请加上去

最后点击 Apply & restart。

这样配置后,Docker 拉取镜像就会直接走你的代理通道,速度起飞。

开启 WSL2 互通

之后,点击右上角的齿轮图标(设置),进入 Resources -> WSL integration。打开 “Enable integration with my default WSL distro”,并且在下面的开关里,把 Ubuntu-22.04 的开关打开,点击右下角的 Apply & restart。

验证一下:
回到你的 Ubuntu 终端,输入:

1
docker --version

如果看到Docker的版本号,那就说明Docker环境已经互通到WSL2了

接着

1
docker run hello-world

如果你看到下面这段话:

1
2
3
Hello from Docker!
This message shows that your installation appears to be working correctly.
...

成功

接下来,你可以愉快地开始部署你的服务了!

结语

还是说哈,这个不是纯在WSL2里面安装Docker Engine,是Docker Desktop,是比较适合新手的方案,如果你是极客,我推荐两篇文章,在WSL2里面安装Docker Engine。