如何同时使用 WSL Ubuntu 和 Docker?

遇到的问题:从你的 wsl –list –verbose 输出可以看出,你当前默认的 WSL 发行版是 docker-desktop,而不是标准的 Ubuntu/Debian。这是 Docker Desktop 在安装时自动创建的专用 WSL 发行版,主要用于运行 Docker 容器,并不适合直接作为 Linux 开发环境使用(缺少 apt/sudo 等基本工具)。给出了下面三种解决方案:

📌 关键区别

环境 适合场景 管理方式 软件安装方式
标准 WSL (Ubuntu) 日常 Linux 开发 wsl 命令 sudo apt install
Docker Desktop WSL 运行 Docker 引擎 Docker 自动管理 不推荐直接修改
Docker 容器 隔离的应用环境 docker 命令 容器内 apt

✅ 最终建议

选择方案 1(标准 WSL Ubuntu),这是最稳定、最接近原生 Linux 开发环境的方式。
只需在 PowerShell 中运行:

powershell
复制
wsl --install -d Ubuntu
wsl --set-default Ubuntu
wsl  # 进入 Ubuntu 安装软件
#sudo apt install -y nginx fcgiwrap python3
sudo -i
apt update && apt install -y nginx fcgiwrap python3

是的!选用方案 1(标准 WSL Ubuntu)后,Docker 仍然可以正常运行,而且这是官方推荐的最佳实践。以下是关键细节和配置方法:


🔧 如何同时使用 WSL Ubuntu 和 Docker?

1️⃣ Docker Desktop 的 WSL 集成(自动模式)

  • 安装 Docker Desktop 时,它会自动创建 docker-desktop WSL 发行版(你之前看到的),但你的 Ubuntu WSL 也可以直接访问 Docker
  • 确保开启 WSL 集成
    1. 打开 Docker Desktop → SettingsResourcesWSL Integration
    2. 勾选你的 Ubuntu 发行版(如 Ubuntu)并点击 Apply & Restart

2️⃣ 验证 Docker 是否在 Ubuntu 中可用

  • 在 Ubuntu WSL 中运行:
    docker --version  # 应显示版本号
    docker run hello-world  # 测试运行容器

    ✅ 如果命令成功,说明 Docker 已集成。


🌟 为什么能同时工作?

  • Docker Desktop 默认会将 Docker CLI 和守护进程(dockerd自动注入所有启用的 WSL 发行版
  • 实际容器仍在 docker-desktop WSL 中运行,但你在 Ubuntu WSL 中可以通过 docker 命令无缝操作。

⚠️ 常见问题排查

docker: command not found

  • 原因:未启用 WSL 集成或路径未配置。
  • 解决
    1. 确认 Docker Desktop 的 WSL 集成已启用(见上文)。
    2. 在 Ubuntu 中运行:
      echo "export PATH=$PATH:/mnt/c/Program Files/Docker/Docker/resources/bin" >> ~/.bashrc
      source ~/.bashrc

❌ 权限问题 Got permission denied

  • 原因:用户未加入 docker 组。
  • 解决
    sudo usermod -aG docker $USER
    newgrp docker  # 立即生效

📌 最佳实践建议

  1. 开发环境:在 Ubuntu WSL 中安装开发工具(如 nginxpython3),代码放在 WSL 文件系统内(如 ~/projects),避免 Windows 路径权限问题。
  2. 容器操作:直接在 Ubuntu WSL 中使用 docker 命令管理容器。
  3. 性能优化:将项目文件放在 WSL 内(如 /home/yourname/projects),而非 /mnt/c/(跨文件系统性能较差)。

🔄 两种 WSL 发行版的关系

发行版 用途 是否可删除?
Ubuntu 开发环境(安装软件、写代码) ❌ 不要删除
docker-desktop Docker 引擎后台运行 ⚠️ 删除会破坏 Docker

总结:方案 1(标准 WSL Ubuntu)和 Docker 完全兼容,只需在 Docker Desktop 设置中启用集成即可。你的 Ubuntu 会变成一个功能完整的开发环境,同时无缝操作 Docker 容器! 🐳🚀

This entry was posted in Resourse. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *