如何在主机上为 docker-compose.yml 中的命名卷设置路径 [英] How to set a path on host for a named volume in docker-compose.yml

查看:48
本文介绍了如何在主机上为 docker-compose.yml 中的命名卷设置路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Example below creates dbdata named volume and references it inside db service:

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

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

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

I can see the path for the volume defaults to:

/var/lib/docker/volumes/_dbdata

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

My question is how to configure the path on host for the dbdata volume?

推荐答案

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

With the local volume driver comes the ability to use arbitrary mounts; by using a bind mount you can achieve exactly this.

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

For setting up a named volume that gets mounted into /srv/db-data, your docker-compose.yml would look like this:

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 不表示它不应该工作.

I have not tested it with the version 2 of the compose file format, but https://docs.docker.com/compose/compose-file/compose-versioning/#version-2 does not indicate, that it should not work.

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

I've also not tested it on Windows...

这篇关于如何在主机上为 docker-compose.yml 中的命名卷设置路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆