语境
我设置了一个运行 Debian 的 WSL2。我运行了一些 Docker Compose 脚本。除了我在 Windows 上安装的 Docker Desktop 之外,所有内容都包含在 WSL2 中。
我已经读到,可以在 Windows 中不使用 Docker Desktop 的情况下在 WSL2 中运行 Docker。但是,我不明白当我使用 Docker Desktop 时,幕后会发生什么。尤其是因为我从未(故意)在 Debian 实例上安装任何 docker 包。
Windows 中的 Docker Desktop 向我展示了哪些容器正在运行。启动和 IO 发生在 Debian 实例中。
问题
Docker 引擎/容器是在 Windows 中还是在 WSL2 内部运行?
答案1
查看 Docker 文档 Windows 上的 Docker Desktop WSL 2 后端:
Windows Subsystem for Linux (WSL) 2 是 Microsoft 构建的完整 Linux 内核,它允许 Linux 发行版在无需管理虚拟机的情况下运行。通过在 WSL 2 上运行 Docker Desktop,用户可以利用 Linux 工作区,避免维护 Linux 和 Windows 构建脚本。此外,WSL 2 还改进了文件系统共享和启动时间。
容器在 WSL2 下的简化虚拟机内运行。虚拟机本身由在 Windows 主机上运行的 Hyper-V 执行。
Docker Desktop 在 Windows 或 WSL2 中运行其容器吗?
因此,问题的答案实际上是:“两者”。它在 WSL2 下运行,而 WSL2 本身在 Windows 下运行。