前置条件: #
- Windows 11
- 已经安装和配置好了WSL2
- 合格网络环境(代理和小猫咪🐱TUN模式)
配置: #
安装 Docker Desktop #
由于默认是安装在C盘,这里使用以下命令进行自定义路径安装:
cmd:
start /w "" "Docker Desktop Installer.exe" install --installation-dir=D:\Docker
PowerShell:
Start-Process -FilePath "Docker Desktop Installer.exe" -ArgumentList "install --installation-dir=D:\Docker" -Wait
安装完了之后并打开,使用命令 wsl -l -v会发现多出了一个docker-desktop和之前安装的Ubuntu发行版一起在运行。
额外:在全新安装的 Docker Desktop 4.30 及更高版本中,
docker-desktop-data不再被创建。相反,Docker Desktop 会创建并管理自己的虚拟硬盘用于存储。docker-desktop发行版仍然会被创建并用于运行 Docker 引擎。接下来我将以我的4.38.0版本为例。
Docker Desktop与WSL2的Linux发行版集成 #
1、设置Settings -> General -> Use WSL 2 based engine:
勾选开启,然后点击Apply & restart应用并重启docker
2、设置Settings -> Resources -> WSL integration:
选择需要集成的Linux发行版比如Ubuntu-24.04勾选开启,然后点击Apply & restart应用并重启docker
这时候对应的Linux发行版就能使用docker命令了如docker -v查看docker版本
修改docker在wsl的磁盘镜像 #
Docker Desktop默认安装的wsl2磁盘镜像在C:\Users\[USERNAME]\AppData\Local\Docker\wsl路径下,可以在Settings -> Resources -> Advanced下进行修改目录
设置代理 #
Settings -> Resources -> Proxies填入:
http://localhost:7890
汉化 Docker Desktop(可选) #
千万不能手贱点更新 #
关闭更新提示和自动更新!
如果发现无法正常使用,建议卸载清空重装
.docker、..\AppData\Local\Docker、..\username\AppData\Roaming\Docker删除清空
配置存储位置 #
C:\Users\username\AppData\Roaming\Docker\settings-store.json:Docker Desktop 设置
C:\Users\username\AppData\Roaming\Docker Desktop
C:\Users\username\AppData\Local\Docker\log:日志
C:\Users\username\.docker:
daemon.json和windows-daemon.json 守护进程配置文件
C:\ProgramData\DockerDesktop
以非 root 用户身份管理 Docker #
添加普通用户到docker组
#查看docker组是否存在
getent group docker
#不存在则创建
sudo groupadd docker
#将用户添加到docker组
sudo usermod -aG docker $USER
额外 #
在Windows11下基于WSL安装的 Docker Desktop 中的 volumes (数据卷) 存储实际在:
\\wsl.localhost\docker-desktop\mnt\docker-desktop-disk\data\docker\volumes
也就是 docker-desktop 这个wsl虚拟机中的 /mnt/docker-desktop-disk/data/docker/volumes 目录
而不是在/var/lib/docker/volumes (只安装 Docker Engine)
参考资料 #
WSL 2 上的 Docker 远程容器入门 - Microsoft