如何从主机访问dockur/windows容器内的Windows共享文件夹?
解决Windows 11主机访问dockur/windows容器共享文件夹的方案
一、Bridge模式下的核心修复步骤(优先推荐,避免Host模式冲突)
1. 确认容器内Windows的真实IP
docker inspect拿到的172.17.0.2是容器在Docker桥接网络中的宿主机侧IP,不是容器内Windows系统的内部IP。你需要:
- 通过
http://localhost:8006进入容器内的Windows,打开「设置->网络和互联网->以太网」,查看Windows系统的IP(通常是192.168.123.x段,dockur/windows默认内部子网)。 - 在主机CMD中ping这个内部IP,确保网络连通;同时在容器内Windows的CMD中ping主机IP,双向验证连通性。
2. 修复RDP连接问题
你的启动命令已映射3389端口,若无法连接:
- 确认容器内Windows已开启远程桌面:进入「系统->远程桌面」,打开开关并添加允许访问的用户。
- 检查主机端口占用:在主机CMD执行
netstat -ano | findstr :3389,若端口被占用,修改容器启动命令的端口映射,比如将-p 3389:3389改为-p 3390:3389,重启容器后用localhost:3390或主机IP:3390尝试RDP连接。
3. 正确访问共享文件夹
- 确认容器内共享权限:右键共享文件夹→「属性->共享->高级共享」,勾选“共享此文件夹”并设置共享名;在「权限」中添加你配置的用户,赋予读写权限。
- 主机访问路径:在文件资源管理器地址栏输入
\\[容器内Windows内部IP]\[共享名],比如\\192.168.123.10\MyShare,输入容器内Windows的用户名和密码即可访问。
二、Host模式的适配方案(若必须使用)
Host模式下容器直接占用主机端口,易导致冲突,需调整:
- 修复web访问:执行
netstat -ano | findstr :8006检查端口占用,若被占用,修改启动命令的端口映射为-p 8007:8006,重启后用localhost:8007访问web界面。 - 访问共享:直接用
\\localhost\[共享名]或\\[主机IP]\[共享名],输入容器内Windows的用户凭据即可。
三、额外排查项
- 临时关闭主机和容器内Windows的防火墙,测试是否能访问共享,排除防火墙拦截;若正常,再添加SMB(445端口)和RDP(3389端口)的允许规则。
- 主机开启SMB支持:进入「控制面板->程序->启用或关闭Windows功能」,勾选“SMB 1.0/CIFS文件共享支持”,重启主机后重试。
内容的提问来源于stack exchange,提问作者erikscandola
相关产品推荐
相关产品推荐

