Linux与Windows双向共享文件:Windows容器 Dockur Windows 的Samba共享文件夹教程
【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows
Dockur Windows 是一个可以把完整的 Windows 系统跑在 Docker 容器里的开源项目,安装完成后桌面会自带一个Shared 共享文件夹,通过内置的 Samba 服务实现Linux 宿主机与 Windows 容器双向共享文件——在 Linux 上放入文件夹,Windows 里自动变成Z:盘;在 Windows 里保存的文件,Linux 上立刻可见,无需手动拷贝。
为什么需要 Samba 共享文件夹?
容器化的 Windows 本质上与宿主机隔离:
- 🖥️Windows 侧:无法直接访问 Linux 的文件系统
- 🐧Linux 侧:无法直接读写 Windows 磁盘(
C:盘)
Samba 是 Linux 下实现 Windows 文件共享协议(SMB)的标准服务。Dockur Windows 已开箱即用地帮你配置好,共享文件夹会同时出现在:
| 位置 | 名称 |
|---|---|
| Windows 桌面 | Shared快捷方式 |
| Windows 资源管理器 | Z:网络驱动器 |
| Linux 宿主机 | 你绑定的本地文件夹 |
工作原理:3 步自动完成
容器启动时,src/samba.sh 脚本会自动完成三件事:
- 生成 SMB 配置:写入用户免登录的匿名共享(
guest only = yes),并保留 SMB1 协议兼容老旧 Windows(见 src/samba.sh) - 探测共享目录:优先使用你绑定挂载到
/shared的文件夹;若没有绑定,则自动生成一个只读的说明性共享(src/samba.sh) - 启动发现服务:新系统用
wsddn,Windows 7 等老系统用 NetBIOS,让 Windows 能自动"看见"这个共享
快速上手:一键绑定宿主机文件夹
第一步:参考项目内置的 compose.yml 启动容器,或使用 Docker Compose 自定义配置:
services: windows: image: dockurr/windows environment: VERSION: "11" volumes: - ./windows:/storage - ./example:/shared # ← 关键:把 Linux 文件夹共享给 Windows第二步:启动后进入 Windows 桌面,双击Shared文件夹(或打开Z:盘),即可看到你在 Linux 上./example目录中的全部文件。
💡 把
./example替换为你自己的任意路径,例如~/Documents,即可共享文档目录。
高级用法:只读模式与多文件夹共享
完整的文件共享环境变量说明见 docs/environment.md:
- 🔒只读共享:设置
SAMBA_READONLY: "Y",Windows 端只能读取、不能写入,适合分发素材 - 📂多文件夹共享:额外绑定
./data2:/shared2、./data3:/shared3,会依次显示为Data2、Data3共享(src/samba.sh) - ⚙️关闭共享:设置
SAMBA: "N"即可完全禁用 Samba - 🔍排查问题:设置
SAMBA_DEBUG: "Y"查看 Samba 实时日志
常见问题排查
| 问题 | 原因与解决 |
|---|---|
| 共享文件夹无法写入 | 宿主机权限不足或挂载为只读,脚本会自动降级为只读共享(src/samba.sh) |
| SELinux 报无权限 | 在绑定挂载后追加:Z标志 |
| Windows 7 看不到共享 | 已内置 SMB1 协议支持,检查防火墙即可 |
| 首次启动只看到说明文档 | 说明尚未绑定/shared,按上文第二步添加 volumes 即可 |
整个共享流程零配置——只要启动容器,Linux 与 Windows 之间的文件交换通道就已经打通,拖拽即传,真正实现双向共享。
【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考