docker-compose 简介
用 volumes 管理数据卷的两种姿势
目录
docker-compose 中 volumes 参数说明
docker-compose 通过 volumes 配置数据卷来实现数据持久化。常见有两种写法。
第一种:本地路径直接挂载(bind mount)
ghost:
image: ghost
volumes:
- ./ghost/config.js:/var/lib/ghost/config.js第二种:使用命名卷(named volume)
services:
mysql:
image: mysql
container_name: mysql
volumes:
- mysql:/var/lib/mysql
# ...
volumes:
mysql:第一种方式将宿主机路径直接挂载到容器,比较直观,但需要自己管理本地路径。 第二种使用命名卷,写法更简洁,但数据存在宿主机的某个默认位置,不易一眼看到。下面说明如何查看命名卷的真实位置。
查看所有卷标:
docker volume ls查看某个 volume 对应的真实地址:
$ docker volume inspect vagrant_mysql
[
{
"Name": "vagrant_mysql",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/vagrant_mysql/_data"
}
]可以看到,命名卷默认存放在宿主机的 /var/lib/docker/volumes/<卷名>/_data 目录下。