00-环境信息:

在CMD窗口执行以下命令查看系统版本

winver

image

确保正在使用 WSL2

C:\Users\<你的用户名>>wsl --version
WSL 版本: 2.4.13.0
内核版本: 5.15.167.4-1
WSLg 版本: 1.0.65
MSRDC 版本: 1.2.5716
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26100.1-240331-1435.ge-release
Windows 版本: 10.0.22621.4317

列出可用的 WSL 发行版

C:\Users\<你的用户名>>wsl --list
适用于 Linux 的 Windows 子系统分发:
Ubuntu-22.04 (默认)

01-安装准备

更新软件包

sudo apt-get update && sudo apt-get upgrade -y

02-开始安装

使用本地文件包安装Docker Engine,下载地址如下:
链接: https://pan.baidu.com/s/1Ek3mmKKwbfMguu6Uh7P5Kw?pwd=amg6 提取码: amg6

sudo dpkg -i containerd.io_1.6.32-1_amd64.deb
sudo dpkg -i docker-ce-cli_26.1.3-1~ubuntu.22.04~jammy_amd64.deb
sudo dpkg -i docker-ce_26.1.3-1~ubuntu.22.04~jammy_amd64.deb

安装docker-compose

sudo mkdir -p ~/.docker/cli-plugins
sudo cp docker-compose-linux-x86_64 ~/.docker/cli-plugins/
sudo mv ~/.docker/cli-plugins/docker-compose-linux-x86_64 ~/.docker/cli-plugins/docker-compose
sudo chmod +x ~/.docker/cli-plugins/docker-compose

将您的用户添加到 docker 组。这允许您无需使用 sudo 提升权限或输入密码即可运行 Docker 命令

sudo usermod -aG docker $USER

验证 Docker Engine 和 Compose 已成功安装

docker --version
docker compose version

配置 Docker 守护进程在 WSL2 中自动启动,先检查是否已启用

cat /etc/wsl.conf
[boot]
systemd=true

运行 Docker 引擎服务并启用自动启动

sudo systemctl enable --now docker.service

查看服务状态systemctl status docker.service

 docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2025-05-06 11:08:20 CST; 39min ago
TriggeredBy:  docker.socket
       Docs: https://docs.docker.com
   Main PID: 15827 (dockerd)
      Tasks: 10
     Memory: 40.3M
        CPU: 631ms
     CGroup: /system.slice/docker.service
             └─15827 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

03-配置网络

在宿主机C:\Users\<你的用户名>目录下新建文件.wslconfig,文件内容如下

[wsl2]
#禁用WSL2的交换分区(Swap),适用于物理内存充足或需要严格限制内存使用的场景
swap=0
#限制 WSL2 实例最大可用内存为 8GB,防止其占用过多主机资源
memory=32G
#启用DNS隧道功能,动态同步 Windows 主机的 DNS 配置
dnsTunneling=true
#关闭WSL2的防火墙集成,确保网络流量不受Windows防火墙规则约束
firewall=false
#自动同步Windows主机的代理设置(如 Clash 或 VPN 代理),避免WSL2内手动配置代理
autoProxy=true
#启用镜像网络模式,使WSL2与Windows主机的网络接口完全一致
networkingMode=mirrored

[experimental]
#允许 WSL2 通过环回地址(如 127.0.0.1)访问 Windows 主机的服务
hostAddressLoopback=true

注意:镜像网络模式需 Windows 11 22H2 或更高版本及 WSL 2.0.0+ 内核支持

配置完成以后在CMD窗口通过以下命令关闭WSL

wsl --shutdown

等待8秒后重新启动WSL

04-验证服务

部署一个windows容器验证容易WSL内部服务是否可达
新建一个windows.yml文件

services:
  windows:
    image: dockurr/windows
    container_name: windows
    environment:
      RAM_SIZE: "8G"
      CPU_CORES: "4"
      USERNAME: "admin"
      PASSWORD: "hello@windows"
      DISK_SIZE: "80G"
      LANGUAGE: "Chinese"
    devices:
      - /dev/kvm
      - /dev/net/tun
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 33890:3389/tcp
      - 33890:3389/udp
    volumes:
      - ./windows:/storage
      #- <你的windows镜像文件>:/boot.iso
    restart: always
    stop_grace_period: 2m

通过如下命令启动容器

docker compose -f windows.yml up -d

稍等片刻即可打开浏览器访问http://<你的局域网IP>:8006

注意:如果是初次部署windows容器要去掉yml文件中镜像文件所在行注释,然后等待30分钟左右才能部署成功

image