如何通过Docker Compose将网络路径挂载到Windows Docker容器?
解决Windows Docker容器挂载网络路径的可行方案
方案一:先将网络共享映射为宿主机本地盘符,再绑定挂载
- 在Windows宿主机上挂载网络共享:
- 命令行执行:
(替换net use Z: \\host\folder /user:your_username your_passwordZ:为未使用的盘符,your_username和your_password为访问共享的账号密码) - 或通过图形界面操作:此电脑 → 映射网络驱动器,选择盘符并输入共享路径,填写账号密码完成挂载。
- 命令行执行:
- 在
docker-compose.yml中使用绑定挂载:
(services: myservice: volumes: - type: bind source: Z:/ target: c:/app/MountedLocationZ:/替换为你刚才映射的盘符路径,确保路径为绝对路径)
方案二:使用Docker本地卷驱动创建SMB卷
Windows容器支持通过local驱动直接创建SMB类型的卷,替代Linux容器的CIFS配置:
- 先创建SMB卷(命令行执行):
(docker volume create --driver local ^ --opt type=smb ^ --opt device=\\host\folder ^ --opt o=username=your_username,password=your_password,rw ^ NetworkLocation^是Windows命令行的换行符,PowerShell中可直接换行) - 在
docker-compose.yml中使用该卷:
(添加services: myservice: volumes: - NetworkLocation:c:/app/MountedLocation volumes: NetworkLocation: external: trueexternal: true表示使用已创建的外部卷)
注意事项
- 确保Docker服务运行的账号(默认是Local System)有访问该网络共享的权限,若权限不足,可修改Docker服务的登录账号为具备共享访问权限的域账号或本地账号。
- 若共享路径是宿主机本地的共享,需确保宿主机防火墙允许“文件和打印机共享”规则。
- YAML配置中路径的反斜杠需转义,或使用正斜杠替代,避免解析错误。
内容的提问来源于stack exchange,提问作者user1472131
相关产品推荐
相关产品推荐

