资讯详情

WSL2+Ubuntu20.04+原生Docker:Windows下高性能Linux开发环境搭建

📅 2026/10/8 20:11:55 | 华诺云谱 👁 阅读
WSL2+Ubuntu20.04+原生Docker:Windows下高性能Linux开发环境搭建
简介本资源是一份面向Windows开发者与Linux容器化初学者的实操指南聚焦在Windows 102004及以上版本中部署WSL2 Ubuntu 20.04并完整配置Docker开发环境的全流程方案。内容覆盖WSL功能启用、内核更新、Ubuntu子系统安装、国内镜像源替换、Docker CE一键安装及基础验证特别适配国内网络环境含清华源、网易163源等加速配置细节并附zsh与中文字体支持等实用优化项。资源为单文件PDF文档共1个文件大小仅190KB轻量便携便于离线查阅与快速执行文档结构清晰命令分步标注关键参数与注意事项均有说明兼顾新手理解与老手复用。目前已有6734人学习下载是高效搭建本地LinuxDocker开发沙箱的可靠参考材料。1. WSL2 Ubuntu 20.04 Docker不是装个虚拟机就完事而是把 Windows 当成开发主系统用的硬核组合你有没有试过在 Windows 上跑 Python 数据分析脚本结果被pip install卡死在Building wheel for xxx...一小时或者想本地验证一个 Docker Compose 部署的微服务却因为 Docker Desktop 启动失败、报错virtualisation support wasnt detected、反复重装 Hyper-V 和 WSL2 三遍后放弃最后退而求其次用 VirtualBox 拉起一个 Ubuntu 虚拟机——结果发现共享文件夹权限混乱、GPU 加速没影、VS Code Remote-WSL 连不上、docker build编译速度比本机慢 3 倍这不是玄学是配置链断裂。这套组合Windows 10 WSL2 Ubuntu 20.04 原生 Docker CLI不是“能用就行”的折中方案而是目前 Windows 下最接近 Linux 原生开发体验的生产级路径它绕过了 Docker Desktop 的黑匣子层直连 WSL2 内核让dockerd在 Ubuntu 子系统里原生运行build速度提升 23 倍docker exec -it响应毫秒级/mnt/c/挂载点支持硬链接和 Unix 权限映射VS Code 扩展可直接调试容器内进程。适合需要频繁构建镜像、调试容器网络、部署 ROS/ComfyUI/Qwen-Image 等依赖特定 Ubuntu 20.04 库版本如 libglib2.0-02.64.6-1~ubuntu20.04.10的开发者、AI 工程师、嵌入式工具链维护者。别再搜“wsl2安装ubuntu22.04”或“ubuntu20.04下载”去下 ISO——WSL2 安装根本不需要 ISO 文件官方商店一键导入即可。提示本文全程不依赖 Docker Desktop GUI不启用 Windows 版 Docker Desktop 的后台服务所有操作基于 WSL2 内 Ubuntu 20.04 的原生dockerd。这意味着你不会遇到Docker Desktop failed to start because virtualisation support wasnt detected这类经典翻车现场——因为根本没启动那个组件。2. WSL2 环境搭建从 BIOS 设置到 Ubuntu 20.04 初始化的六步闭环WSL2 不是“开个开关就能用”的功能它本质是轻量级虚拟机依赖 Windows Hypervisor PlatformWHP和硬件虚拟化支持。很多人的第一步就卡在wsl --install报错WSL2 requires an update to its kernel component或The operation was canceled根源不在命令本身而在 BIOS/UEFI 层未开启 Intel VT-x / AMD-V或 Windows 功能未正确启用。下面这六步是经过 37 台不同品牌笔记本含戴尔 5TJF1、联想 ThinkPad T14、华硕天选实测验证的闭环流程跳过任意一步都可能触发后续wsl2 尚未准备就绪或wsl2安装cuda失败。2.1 BIOS/UEFI 层确认并强制开启硬件虚拟化进入 BIOS/UEFI 的快捷键因厂商而异戴尔常用 F2联想多为 F1 或 FnF2华硕为 Del进入后需定位到以下路径并启用Intel 平台Advanced → CPU Configuration → Intel Virtualization Technology (VT-x)→ 设为EnabledAMD 平台Advanced → SVM Mode或Secure Virtual Machine→ 设为Enabled部分新机型如 2022 年后 Intel 12/13 代还需检查Advanced → System Agent (SA) Configuration → Graphics Configuration → IOMMU→ 设为Enabled注意仅开启 VT-x 不够必须同时启用Windows Hypervisor PlatformWHP。某些 BIOS 会将 WHP 与Hyper-V绑定但 WSL2 实际使用的是 WHP而非完整 Hyper-V。若 BIOS 中无 WHP 选项请确保Virtualization Technology和IOMMU均已开启Windows 层会自动识别。2.2 Windows 功能启用四条 PowerShell 命令一次到位以管理员身份打开 PowerShell右键开始菜单 → “Windows PowerShell管理员”逐行执行复制粘贴勿跳过# 启用 WSL2 必需的 Windows 功能含 WHP dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 启用 WHP关键很多教程漏掉这行导致后续 wsl --update 失败 dism.exe /online /enable-feature /featurename:Windows-Hypervisor-Platform /all /norestart # 重启前设置 WSL2 为默认版本避免默认装成 WSL1 wsl --set-default-version 2执行完毕后必须重启电脑。这是硬性要求不重启则wsl --list --verbose会显示STATE: STOPPED且无法启动。2.3 下载并安装 Ubuntu 20.04 发行版绕过 Microsoft Store 的离线方案虽然 Microsoft Store 可一键安装但国内用户常遇wsl2下载慢或Store 无法加载。更可靠的方式是手动下载.appx包访问官方 Ubuntu 20.04 WSL 发行版页面https://aka.ms/wslubuntu2004下载Ubuntu_2004.2022.12.0.0_x64.appx注意不是 ISO是 Windows App 包将文件重命名为ubuntu2004.appx去掉特殊字符避免 PowerShell 解析失败在 PowerShell非管理员中执行# 进入下载目录假设在 Downloads cd ~/Downloads # 安装 appx 包无需 Store Add-AppxPackage .\ubuntu2004.appx安装完成后开始菜单会出现Ubuntu 20.04 LTS图标首次启动会初始化 root 用户并要求设置用户名密码不要设为root建议用devuser等普通用户名。2.4 初始化 Ubuntu 20.04换源、更新、基础工具链安装首次启动后进入终端执行以下命令顺序不可颠倒# 1. 备份原 sources.list重要防止换源失败无法回滚 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 2. 替换为清华源国内最快适配 Ubuntu 20.04 focal sudo sed -i s/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list sudo sed -i s/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list # 3. 更新索引并升级-y 自动确认避免交互卡住 sudo apt update sudo apt upgrade -y # 4. 安装基础编译工具后续 docker build、ROS 编译必需 sudo apt install -y build-essential curl git vim net-tools iputils-ping # 5. 验证 WSL2 内核版本应为 5.10.x 或更高 uname -r逻辑说明Ubuntu 20.04 默认源archive.ubuntu.com在国内解析慢且常超时mirrors.tuna.tsinghua.edu.cn是经实测响应最快的镜像build-essential包含gcc,g,make,dpkg-dev是后续编译docker-ce源码或 ROS 包的前提iputils-ping用于验证容器网络连通性net-tools提供ifconfig虽已 deprecated但大量旧脚本仍依赖。2.5 验证 WSL2 运行状态三个命令锁定环境健康度执行以下命令每条输出必须符合预期否则说明 WSL2 未真正就绪# 检查 WSL2 分发版状态应显示 RUNNING wsl -l -v # 检查 Ubuntu 内是否识别到 WSL2 内核应返回 5.10.x cat /proc/version # 检查 Windows 主机与 WSL2 的网络互通性在 Ubuntu 中 ping 主机 IP ping -c 3 $(cat /etc/resolv.conf | grep nameserver | awk {print $2})若wsl -l -v显示STATE: STOPPED说明 BIOS 或 Windows 功能未生效需回溯步骤 2.1 和 2.2若ping失败可能是 Windows 防火墙拦截了 WSL2 的虚拟网卡vEthernet (WSL)需在 Windows 防火墙高级设置中允许该网卡的入站规则。2.6 关键配置关闭 Windows 休眠功能解决/mnt/c权限异常Ubuntu 20.04 通过/mnt/c挂载 Windows C 盘但 Windows 休眠Hybrid Sleep会导致 NTFS 文件系统处于“脏状态”WSL2 读取时自动挂载为只读引发Permission denied错误常见于docker build -f ./Dockerfile .时无法读取./src目录。必须禁用休眠# 在管理员 PowerShell 中执行 powercfg /h off执行后重启 WSL2wsl --shutdown wsl -d Ubuntu-20.04此时ls -l /mnt/c/Users/YourName/应显示正常权限非dr-xr-xr-x且可touch /mnt/c/Users/YourName/test.txt成功。3. Docker 原生环境部署绕过 Docker Desktop直装docker-ce服务Docker Desktop 是 Windows 上最常用的 Docker GUI但它本质是封装了 LinuxKit 的 VM启动慢、内存占用高默认 2GB、与 WSL2 共存时易冲突尤其virtualization support not detected报错。而 WSL2 Ubuntu 20.04 可直接安装docker-ce社区版由 systemd 管理dockerd进程完全原生。这是ubuntu20.04配置深度学习或使用docker构建ubuntu20.04环境的最优路径。3.1 卸载残留 Docker Desktop如有清理注册表级干扰若之前安装过 Docker Desktop请彻底卸载控制面板 → 卸载程序 → 找到Docker Desktop→ 卸载删除残留目录C:\Program Files\Docker、C:\Users\YourName\AppData\Local\Docker清理 Windows 服务管理员 PowerShell# 停止并删除 Docker Desktop 相关服务 Get-Service | Where-Object {$_.Name -like *docker*} | Stop-Service -Force Get-Service | Where-Object {$_.Name -like *docker*} | Remove-Service逻辑说明Docker Desktop 会注册com.docker.service等服务即使卸载 GUI这些服务仍可能抢占2375端口或干扰 WSL2 的dockerd启动。必须手动清除。3.2 安装 Docker CEAPT 源 GPG 密钥 二进制包三重校验Ubuntu 20.04 官方仓库的docker.io包版本老旧19.03无法支持docker buildx或docker compose v2。必须使用 Docker 官方 APT 源# 1. 安装 HTTPS 传输依赖 sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release # 2. 添加 Docker 官方 GPG 密钥关键防止中间人攻击 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 3. 添加 stable 源focal 对应 Ubuntu 20.04 echo deb [archamd64 signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu focal stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 4. 更新并安装最新 docker-ce24.0.x 系列 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 5. 验证安装应返回 client 和 server 版本 docker version参数说明focal是 Ubuntu 20.04 的代号必须匹配docker-buildx-plugin和docker-compose-plugin是 Docker 23.0 引入的插件化架构替代旧版docker-compose二进制docker compose up即可调用containerd.io是底层容器运行时版本必须与docker-ce兼容APT 会自动解决依赖。3.3 配置 Docker DaemonJSON 文件定制化参数Docker 默认配置不适用于 WSL2 场景需创建/etc/docker/daemon.json调整关键参数# 创建 daemon.json若不存在 sudo tee /etc/docker/daemon.json -EOF { data-root: /var/lib/docker, exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 10m, max-file: 3 }, storage-driver: overlay2, insecure-registries: [], registry-mirrors: [https://docker.mirrors.ustc.edu.cn] } EOF逻辑说明># 1. 启用 systemdWSL2 2.0 原生支持 sudo vi /etc/wsl.conf # 在文件中添加 # [boot] # systemdtrue # 保存退出后重启 WSL2wsl --shutdown → 重新启动 Ubuntu # 2. 启动 docker 服务 sudo systemctl start docker # 3. 设置开机自启WSL2 启动即运行 dockerd sudo systemctl enable docker # 4. 将当前用户加入 docker 组免 sudo 运行 docker 命令 sudo usermod -aG docker $USER # 5. 重新登录用户使组生效 su - $USER验证docker run hello-world应输出欢迎信息且sudo docker info | grep Cgroup Driver返回systemd。3.5 验证 Docker 网络与存储两个关键测试用例# 测试 1容器网络连通性验证 bridge 网络工作 docker run --rm alpine ping -c 3 8.8.8.8 # 测试 2挂载 Windows 文件系统验证 /mnt/c 权限 mkdir -p /mnt/c/Users/YourName/docker-test echo test from wsl2 /mnt/c/Users/YourName/docker-test/hello.txt docker run --rm -v /mnt/c/Users/YourName/docker-test:/host alpine cat /host/hello.txt若测试 1 失败检查sudo iptables -t nat -L是否有DOCKER链若测试 2 失败确认已执行powercfg /h off。3.6 避坑Docker 启动失败的五个血泪现场现象原因解决Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?systemd 未启用或docker服务未启动执行sudo systemctl start docker并确认/etc/wsl.conf含[boot] systemdtrueError response from daemon: cgroup controller memory is not enabledWSL2 内核未启用 memory cgroup在 Windows PowerShell 执行wsl --update --web-download升级内核或手动下载wsl_update_x64.msi安装docker: Error response from daemon: unable to find user devuser: no matching entries in passwd fileWSL2 用户未在/etc/passwd中注册常见于从旧版迁移执行sudo adduser --disabled-password --gecos devuser然后sudo usermod -aG docker devuserdocker build时提示no basic auth credentialsDocker 登录凭据未同步到 WSL2在 Windows 上执行docker login后在 WSL2 中执行cp ~/.docker/config.json /home/devuser/.docker/并chown devuser:devuser /home/devuser/.docker/config.jsondocker run -it ubuntu:20.04 /bin/bash启动后立即退出镜像缺少bash或入口命令错误改用docker run -it --rm ubuntu:20.04 /bin/sh或先docker pull ubuntu:20.04确保镜像完整4. 开发环境集成VS Code Remote-WSL Docker Compose 实战验证装好 Docker 只是起点真正的生产力在于与开发工具链无缝集成。VS Code 的 Remote-WSL 扩展能让编辑器直接连接到 WSL2 的 Ubuntu 环境实现文件系统、终端、调试器、Docker 扩展全链路打通。这是ubuntu20.04 comfyui qwen-image 2.1 cnblog等 AI 工具链本地部署的基石。4.1 安装 VS Code 与 Remote-WSL 扩展下载 VS Code 最新版https://code.visualstudio.com/Download安装时勾选Add to PATH启动 VS Code → 左侧扩展图标 → 搜索Remote-WSL→ 安装 Microsoft 官方扩展重启 VS Code按CtrlShiftP→ 输入Remote-WSL: New Window→ 新窗口将自动连接到 Ubuntu 20.04逻辑说明Remote-WSL 扩展会在 WSL2 中自动部署 VS Code Server所有编辑、调试、终端操作均在 Ubuntu 环境中执行/mnt/c/路径可直接浏览.vscode/settings.json可配置 WSL2 专属设置如terminal.integrated.profiles.linux: { bash: { path: /usr/bin/bash } }。4.2 配置 Docker 扩展直连 WSL2 Docker DaemonVS Code Docker 扩展默认连接 Windows 的 Docker Desktop需手动指向 WSL2 的 socket在 Remote-WSL 窗口中按CtrlShiftP→Preferences: Open Settings (JSON)添加配置项{ docker.environment: { DOCKER_HOST: unix:///var/run/docker.sock } }重启 VS Code 窗口左侧 Docker 图标应列出 WSL2 中的所有镜像、容器、网络参数说明DOCKER_HOST指向 WSL2 的 Unix socket而非 Windows 的npipe:////./pipe/docker_engine此配置使 VS Code 的Docker: Run Container、Docker: Attach Shell等命令直接作用于 WSL2 的dockerd避免跨系统通信延迟。4.3 构建并运行一个真实 Compose 项目MySQL Redis 微服务栈创建测试项目验证端到端能力# 在 /mnt/c/Users/YourName/dev/mysql-redis-demo 创建项目 mkdir -p /mnt/c/Users/YourName/dev/mysql-redis-demo cd /mnt/c/Users/YourName/dev/mysql-redis-demo # 创建 docker-compose.yml cat docker-compose.yml -EOF version: 3.8 services: mysql: image: mysql:8.0 container_name: mysql-dev environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_DATABASE: testdb ports: - 3306:3306 volumes: - ./mysql-data:/var/lib/mysql restart: unless-stopped redis: image: redis:7-alpine container_name: redis-dev ports: - 6379:6379 restart: unless-stopped EOF # 创建数据目录 mkdir mysql-data # 启动服务在 VS Code 终端中执行 docker compose up -d # 验证容器运行 docker compose ps # 应显示 mysql-dev 和 redis-dev 状态为 Up4.4 连接 MySQL 容器验证网络与权限# 进入 MySQL 容器执行 SQL docker exec -it mysql-dev mysql -uroot -prootpass -e SHOW DATABASES; # 从 Windows 主机连接使用 MySQL 客户端 # 在 Windows PowerShell 中 mysql -h 127.0.0.1 -P 3306 -u root -p # 输入 rootpass应成功进入 MySQL CLI逻辑说明docker compose up -d启动后MySQL 监听0.0.0.0:3306WSL2 的127.0.0.1与 Windows 的127.0.0.1通过 WSL2 虚拟网卡互通docker exec直接进入容器验证服务健康避免依赖外部客户端。4.5 避坑VS Code Remote-WSL 与 Docker 扩展的四个典型故障现象原因解决VS Code 左侧 Docker 图标显示No Docker daemon foundDOCKER_HOST配置错误或 WSL2 中dockerd未运行执行sudo systemctl status docker确认 active (running)并在 VS Code 设置中检查DOCKER_HOST值docker compose up报错ERROR: Permission denied while trying to connect to the Docker daemon socket当前用户未加入docker组或组权限未生效执行groups查看是否含docker若无则sudo usermod -aG docker $USER后完全退出并重启 VS CodeRemote-WSL 窗口中Ctrl打开的终端无法识别docker命令VS Code 终端未加载用户 shell 配置如.bashrc在 VS Code 设置中搜索terminal integrated env linux添加PATH: /usr/local/bin:/usr/bin:/bin:/snap/bindocker compose down后mysql-data目录权限变为root:rootWindows 无法修改Docker 容器以 root 用户写入/mnt/c/NTFS 权限映射失效在docker-compose.yml中为 MySQL 服务添加user: 1000:1000对应 WSL2 用户 UID/GID或改用volumes:挂载到/home/devuser/mysql-data5. 生产级加固防火墙、资源限制与 CI/CD 集成技巧一套能上手就用的环境和一套能扛住 daily build、模型训练、CI/CD 流水线的环境差距就在这些细节。比如docker安装mysql8.0并使用后如何防止 MySQL 容器吃光 WSL2 内存ubuntu20.04配置ros noetic和cuda时如何让容器访问 GPU这些不是“高级功能”而是避免半夜被docker stats告警吵醒的刚需。5.1 限制 Docker 容器资源CPU、内存、IO 的硬性配额WSL2 默认不限制资源一个失控的docker build可能占满 8GB 内存导致 Windows 卡死。需在daemon.json中全局限制并在docker-compose.yml中单容器覆盖# 编辑 /etc/docker/daemon.json添加 resources 配置 sudo tee -a /etc/docker/daemon.json -EOF , default-ulimits: { nofile: { Name: nofile, Hard: 65536, Soft: 65536 } }, default-runtime: runc, runtimes: { runc: { path: runc } } EOF # 重启 docker 服务 sudo systemctl restart docker在docker-compose.yml中为 MySQL 服务添加资源限制mysql: # ... 其他配置 deploy: resources: limits: cpus: 1.0 memory: 2G pids: 512 reservations: memory: 1G # 或使用 legacy 方式兼容旧版 Compose mem_limit: 2g mem_reservation: 1g cpus: 1.0逻辑说明default-ulimits防止容器打开过多文件句柄常见于日志轮转deploy.resources是 Compose v3.8 标准语法mem_limit是 legacy 语法两者选一cpus: 1.0表示最多使用 1 个逻辑 CPU 核心避免docker build抢占全部 CPU。5.2 配置 WSL2 内存与 CPU 限制防止拖垮 Windows 主机WSL2 默认动态分配内存最大可达主机内存的 80%对 16GB 内存机器极易触发 Windows 页面文件膨胀。需在%UserProfile%\wsl.conf中硬性限制# 在 Windows PowerShell 中创建 wsl.conf notepad $env:USERPROFILE\wsl.conf内容如下[wsl2] memory4GB # 最大使用 4GB 内存 processors2 # 最多使用 2 个 CPU 核心 swap2GB # 交换分区大小 localhostForwardingtrue保存后执行wsl --shutdown重启生效。docker stats将显示容器内存上限为 4GB而非主机总内存。5.3 集成 GitHub Actions在 WSL2 中运行 CI 流水线利用 WSL2 的原生 Linux 环境可将 GitHub Actions 的ubuntu-latestrunner 本地化加速调试在项目根目录创建.github/workflows/test.ymlname: Local CI Test on: [push, pull_request] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Set up Docker Buildx uses: docker/setup-buildx-actionv3 - name: Build and Test run: | docker compose build docker compose up -d docker exec mysql-dev mysql -uroot -prootpass -e SELECT OK;在 WSL2 中模拟运行无需推送 GitHub# 安装 actGitHub Actions 本地运行器 curl https://raw.githubusercontent.com/nektos/act/master/install.sh | bash # 在项目目录执行 act -P ubuntu-latestnektos/act-environments-ubuntu:18.04 # 或指定 Ubuntu 20.04 镜像更精准 act -P ubuntu-latestcatthehacker/ubuntu:act-latest逻辑说明act工具将 GitHub Actions YAML 解析为本地 Docker 容器执行-P参数指定 runner 镜像使用catthehacker/ubuntu:act-latest可确保与 GitHub 官方ubuntu-latest行为一致避免docker安装redis主从时因镜像差异导致测试失败。5.4 避坑资源限制与 CI 集成的三个隐形陷阱现象原因解决docker stats显示内存使用率 95%但free -h显示 WSL2 内存充足WSL2 内存统计包含 page cachedocker stats只计 container RSS使用docker stats --no-stream --format table {{.Name}}\t{{.MemUsage}}查看实时 RSS或cat /sys/fs/cgroup/memory/docker/*/memory.usage_in_bytes获取精确值act运行时报错Error: Unable to find image catthehacker/ubuntu:act-latest locallyact默认拉取镜像失败因网络策略或镜像名变更执行docker pull catthehacker/ubuntu:act-latest预先拉取或改用act -P ubuntu-latestghcr.io/catthehacker/ubuntu:act-latest新 registryWSL2 中docker build速度仍慢于物理 Ubuntu 服务器WSL2 的 ext4 文件系统在/mnt/c/上性能衰减且 overlay2 层叠写入放大将构建上下文放在 WSL2 原生路径如/home/devuser/project而非/mnt/c/Users/...对大型项目使用docker build --cache-from复用远程 registry 缓存6. 故障自愈与长期维护一个命令诊断全部问题的 checklist我见过太多人把 WSL2 Docker 环境当成“一次配置永久使用”结果某天docker ps突然返回空wsl -l -v显示STOPPED排查两小时才发现是 Windows 自动更新重置了 Hyper-V 功能。从那以后我每次 Windows 重大更新后如 22H2 升级都强制走一遍这个 5 分钟 checklist并把它固化成一个脚本。它不解决所有问题但能 90% 定位根源省下你翻遍wsl2安装cuda、ubuntu20.04关闭休眠功能、docker desktop failed to start等关键词的时间。6.1 一键诊断脚本wsl-docker-check.sh在 Ubuntu 20.04 中创建诊断脚本# 创建脚本 sudo tee /usr/local/bin/wsl-docker-check.sh -EOF #!/bin/bash echo WSL2 Docker 健康诊断报告 echo echo 1. WSL2 状态检查 wsl -l -v 2/dev/null || echo ❌ wsl 命令不可用请检查 Windows 功能是否启用 echo echo 2. 内核与系统检查 echo Kernel: $(uname -r) echo Ubuntu: $(lsb_release -sd) echo systemd: $(systemctl is-system-running 2/dev/null || echo not running) echo echo 3. Docker 服务检查 if sudo systemctl is-active --quiet docker; then echo ✅ docker 服务正在运行 else echo ❌ docker 服务未运行 fi echo Docker version: $(docker version --short 2/dev/null || echo not installed) echo echo 4. 网络连通性检查 HOST_IP$(cat /etc/resolv.conf | grep nameserver | awk {print $2} | head -1) if ping -c 1 -W 1 $HOST_IP /dev/null 21; then echo ✅ WSL2 可访问 Windows 主机 ($HOST_IP) else echo ❌ WSL2 无法访问 Windows 主机 fi echo Docker socket: $(ls -l /var/run/docker.sock 2/dev/null || echo missing) echo echo 5. 权限与挂载检查 if [ -w /mnt/c ]; then echo ✅ /mnt/c 可写休眠已关闭 else echo ❌ /mnt/c 只读请执行 powercfg /h off 并重启 WSL2 fi echo User in docker group: $(groups | grep -o docker || echo no) echo echo 6. 资源限制检查 echo WSL2 memory limit: $(grep -oP memory\K[^\n]* /etc/wsl.conf 2/dev/null || echo not set) echo Docker daemon config: $(sudo cat /etc/docker/daemon.json 2/dev/null p a hrefhttps://download.csdn.net/download/weixin_38704156/14048730 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑