Docker Compose相对路径与Docker卷

时间:2017-10-24 09:59:53

标签: docker docker-compose

我有一个网站的docker compose文件,在一堆其他用于各种目的的容器中,包含一个具有持久数据的mysql数据库。目前,撰写文件指定了数据的相对路径,例如:

 
mysql: 
  image: mysql:5.7
  container_name: sqldb
  volumes:
   - ./mysql_data/_data:/var/lib/mysql

和文件夹结构:

 --mysql_data
 --static_content
 docker-compose.yml

这意味着在任何时候我都可以通过复制整个文件夹并运行docker-compose来将整个站点(包括持久内容)移动到另一台服务器。

但是阅读有关docker卷的信息听起来似乎是首选方法(加上相对绑定挂载路径似乎不支持使用“docker run”,但是在compose中工作)所以我想知道我是否需要更改这种使用卷的方法?这种相对约束方法是否存在固有的错误?如果我切换到卷,移动容器时我是否必须手动移动卷(例如此方法How to port data-only volumes from one host to another?)?

1 个答案:

答案 0 :(得分:1)

这是docker-swarm或compose的示例,用于维护数据的持久性。

version: '3'
services:
    sample:
        image: sample
        volumes:
            - sample-date:/var/data
volumes:
  sample-date:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: /home/path/of/your/folder

这适用于我们文件夹的任何服务器,并将卷设备属性切割为相应的目录路径。