我有一个网站的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?)?
答案 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
这适用于我们文件夹的任何服务器,并将卷设备属性切割为相应的目录路径。