下面的示例创建名为volume的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卷配置路径?

最佳答案

local卷驱动程序,它可以使用任意安装;通过使用bind mount,您可以完全实现此目的。

为了设置一个命名卷装入/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'

我尚未使用撰写文件格式的版本2对其进行测试,但是https://docs.docker.com/compose/compose-file/compose-versioning/#version-2并未表明它不起作用。

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

08-07 14:20