如何在Windows 10上使用docker-compose挂载卷?

时间:2019-05-07 20:05:22

标签: docker docker-compose windows-10

我有多个开发系统(win10台式机,macbookpro,win10笔记本电脑,Linux生产发行版)。我的docker-compose文件在基于unix的环境中运行良好,但是无论我的路径结构如何,win10系统都不会设置共享卷。

volumes:
  certbot-etc:
  certbot-var:
  web-root:
    driver: local
    driver_opts:
      type: none
      device: C:\Users\name\Source\project\data
      o: bind
  dhparam:
    driver: local
    driver_opts:
      type: none
      device: C:\Users\name\Source\project\dhparam
      o: bind

通常我使用以下路径:

/home/name/api/data
/home/name/api/dhparam

我也尝试过//c//Users//name//etc..

我从命令行尝试了set COMPOSE_CONVERT_WINDOWS_PATHS=1,并完成了Docker的完全重启以及容器的停止和启动。仍然有同样的问题。

已确认可以在C:上检查Docker for Windows中的共享驱动器以及重置凭据。

1 个答案:

答案 0 :(得分:0)

我尝试了很多事情,从“ docker-machine mount”到“ sshfs-win”。 对我而言,最简单,最快的方法是使用VirtualBox的共享文件夹(在Windows 10上创建虚拟Docker计算机的位置)。您可以创建一个,也可以使用已经可用的默认之一。

enter image description here

然后,将其用作docker-compose.yaml文件上文件夹的路径:

/c/Users/your-directory-name

或者...在docker-compose.yaml所在的文件夹中使用.env文件,在其上设置变量:

MYSQL_VOLUME_PATH=/c/your-directory-name

在您的docker-compose.yaml文件上,执行以下操作:

volumes:
  mysql-db-volume:
  driver: local
  driver_opts:
     type: none
     device: ${MYSQL_VOLUME_PATH}
     o: bind

要注意 我并不是说在生产环境中应该那样做-我在描述本地开发环境 < / p>