129

下面的示例创建名为卷的dbdata并在db服务中引用它:

version: '2'
services:
  db:
    image: mysql
    volumes:
      - dbdata:/var/lib/mysql
volumes:
  dbdata:
    driver: local

(来自https://stackoverflow.com/a/35675553/4291814

我可以看到卷默认的路径为:

/var/lib/docker/volumes/<project_name>_dbdata

我的问题是如何在主机上为dbdata卷配置路径?

4

2 回答 2

113

使用local卷驱动程序可以使用任意挂载;通过使用绑定安装,您可以完全实现这一点。

要设置安装到的命名卷/srv/db-data,您docker-compose.yml将如下所示:

version: '2'
services:
  db:
    image: mysql
    volumes:
      - dbdata:/var/lib/mysql
volumes:
  dbdata:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/srv/db-data'

我没有使用 compose 文件格式的第 2 版对其进行测试,但https://docs.docker.com/compose/compose-file/compose-versioning/#version-2并未表明它不应该工作。

我也没有在Windows上测试过...

于 2018-04-19T12:01:54.333 回答
10

命名卷的位置由 docker 管理;如果您想自己指定位置,您可以“绑定挂载”主机目录,或使用允许您指定路径的卷插件。

您可以在我最近发布的另一个答案中找到一些详细信息;https://stackoverflow.com/a/36321403/1811501

于 2016-04-03T22:25:16.333 回答