Docker的volume数据存储位置是什么?命名卷挂载路径对应宿主机何处?
Docker Compose 卷路径映射解答
你当前使用的是Docker 命名卷(named volume)模式,路径对应逻辑如下:
- 冒号右侧的
/var/lib/postgresql/data是PostgreSQL容器内部的独立文件系统路径,和宿主机文件系统默认隔离,因此你直接在宿主机搜索无法找到该目录。 - 你在compose文件中声明的
db-data是Docker daemon统一管理的命名卷,这类卷的实际存储位置默认在宿主机的/var/lib/docker/volumes/db-data/_data路径下,也就是你之前在/var/lib/docker/volumes/下找到的相关文件目录,容器对内部/var/lib/postgresql/data的所有读写操作都会实时同步到这个宿主机目录中。 - 如果你需要将数据存储到宿主机自定义的可直接访问路径,可以改用绑定挂载模式,将volumes配置修改为:
这样会在执行services: postgres: image: postgres:12 volumes: - ./local-pg-data:/var/lib/postgresql/data:cacheddocker-compose up的当前目录下创建local-pg-data文件夹,和容器内的数据库目录直接绑定,你可以直接在宿主机查看修改所有数据库文件。
内容的提问来源于stack exchange,提问作者sonium
相关产品推荐
相关产品推荐

