docker-machine 驱动兼容性大盘点:docker-windows-box 揭秘 VMware 驱动与 boot2docker 共享文件夹问题
2026/9/19 7:30:25 网站建设 项目流程

docker-machine 驱动兼容性大盘点:docker-windows-box 揭秘 VMware 驱动与 boot2docker 共享文件夹问题

【免费下载链接】docker-windows-boxVarious Vagrant envs with Windows 2019/10 and Docker, Swarm mode, LCOW, WSL2, ...项目地址: https://gitcode.com/gh_mirrors/do/docker-windows-box

🐳docker-windows-box是一个面向 Windows 容器的 Vagrant 测试环境集合,其中专门准备了两个子项目,用于实测docker-machine 的 VMware 驱动兼容性boot2docker 共享文件夹问题:docker-machine/(Windows 10 + VMware Workstation)和docker-machine-fusion/(macOS + VMware Fusion)。本文带你快速看懂:哪些版本组合可用、共享文件夹为什么失效,以及如何三步验证。

为什么专门测 docker-machine 的 VMware 驱动?

docker-machine 负责在宿主机上自动创建并管理一台运行 Docker 引擎的 Linux 虚拟机(即 boot2docker 虚机)。在 Windows 和 macOS 上,它依赖第三方 VMware 驱动(vmwareworkstationvmwarevmwarefusion),而这些驱动的版本组合一旦出现偏差,最典型的症状就是:

  • boot2docker 虚机能启动,但宿主机共享文件夹挂载失败/Users目录为空;
  • 容器内无法读写宿主机文件,开发体验直接"翻车"。

docker-windows-box 项目作者用两套自动化环境,把 docker-machine 0.13.0 ~ 0.16.0 与不同驱动逐一实测,结论都记录在了环境说明中,堪称一份"兼容性速查表"。

两大开箱即用的测试环境

1️⃣ Windows 10 + VMware Workstation 环境

docker-machine/Vagrantfile 会自动完成全部配置:安装 VMware Workstation 15.0.1、Docker 17.10.0、docker-machine 0.13.0,并同时装上vmwareworkstationvmware两个第三方驱动,方便横向对比。

2️⃣ macOS + VMware Fusion 环境

docker-machine-fusion/Vagrantfile 则基于 macOS 10.13 虚机,通过 Homebrew 安装 VMware Fusion,并预置 docker-machine 0.13.0 ~ 0.16.0 共多个版本的二进制,用于逐版本回归测试vmwarefusion驱动。

两个环境的详细说明分别见 docker-machine/README.md 与 docker-machine-fusion/README.md。

boot2docker 共享文件夹问题:实测兼容性矩阵

以下是 VMware Workstation 场景下的实测结果(boot2docker 均为 18.06.1):

共享文件夹状态docker-machine 版本使用的驱动boot2docker
✅ 正常0.13.0vmwareworkstation18.06.1
✅ 正常0.16.0vmwareworkstation18.06.1
❌ 失败0.13.0vmware18.06.1
❌ 失败0.16.0vmware18.06.1

结论很直白:换用vmwareworkstation驱动即可。而 macOS 侧的表现更"干脆"——作者实测发现,较新的 docker-machine 二进制在vmrun enableSharedFolders这一步直接中止,只有 0.13.0 搭配vmwarefusion驱动能正常工作。

三步验证共享文件夹是否正常工作

在测试虚机内部(可通过vagrant rdp进入桌面),按顺序执行三步即可定位问题:

  1. 创建机器:用指定驱动和 boot2docker 镜像创建 docker machine,例如docker-machine -D create -d vmwareworkstation ...-D参数会输出调试日志,便于观察失败位置);
  2. 检查挂载:执行docker-machine ssh test ls /Users,若/Users目录为空,说明共享文件夹挂载失败;
  3. 容器内验证:挂载进容器再确认一次,如docker run --rm -v /Users:/Users alpine ls /Users,能列出文件才算组合真正可用。

💡 小技巧:创建过程中可以直接打开~/.docker/machine/machines/test/test.vmx文件,在 VMware 界面里直观查看 boot2docker 虚机的运行状态;换版本前先执行docker-machine rm -f test销毁旧机器。

Windows 容器生态的整体图景

除了 docker-machine 场景,docker-windows-box 还覆盖 Windows Server 上的 Docker 引擎、Swarm 模式、LCOW 以及 WSL 2 等多种环境,方便你在同一套工具链下做横向对比。下图即为 Windows Server 虚机内查看 Docker 版本与容器镜像的典型画面:

总结:记住这两条避坑原则

  1. Windows 上用vmwareworkstation驱动,避开vmware驱动——后者(0.13.0 和 0.16.0)共享文件夹均失败;
  2. macOS 上锁定 docker-machine 0.13.0 +vmwarefusion驱动——更新版本会在vmrun enableSharedFolders处中止。

需要动手验证的话,克隆仓库后进入对应目录执行vagrant up即可:

git clone https://gitcode.com/gh_mirrors/do/docker-windows-box cd docker-windows-box/docker-machine vagrant up

整套环境由 Vagrant 自动完成安装与配置,非常适合新手复现问题、对比驱动行为,也适合作为团队排查"共享文件夹玄学问题"的标准实验台。🎯

【免费下载链接】docker-windows-boxVarious Vagrant envs with Windows 2019/10 and Docker, Swarm mode, LCOW, WSL2, ...项目地址: https://gitcode.com/gh_mirrors/do/docker-windows-box

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询