docker - docker 将卷数据存储在哪里?
问题描述
我正在运行一个简单的 docker-compose.yml 文件,其中包含以下指令:
services:
postgres:
image: postgres:12
volumes:
- db-data:/var/lib/postgresql/data:cached
volumes:
db-data:
一切都按预期工作,postgres 似乎可以轻松创建和查找其数据库文件。然而,主机文件系统中甚至不存在“/var/lib/postgresql”。“/var/lib/docker/volumes/”包含文件,但如果不是主机文件系统,“/var/lib/postgresql/data”指向哪里?
解决方案
您可以inspect
获取volume
主机文件系统上的确切位置。您可以在下面找到命令输出的小示例,检查 的值Mountpoint
:
$ docker volume inspect volume_example_db-data
[
{
"CreatedAt": "2021-07-30T12:34:57+03:00",
"Driver": "local",
"Labels": {
"com.docker.compose.project": "volume_example",
"com.docker.compose.version": "1.27.4",
"com.docker.compose.volume": "db-data"
},
"Mountpoint": "/var/lib/docker/volumes/volume_example_db-data/_data",
"Name": "volume_example_db-data",
"Options": null,
"Scope": "local"
}
]
默认情况下,卷的名称将文件夹名称作为前缀,在我的情况下是这样,volume_example
但在你的情况下,它将是类似的:
/var/lib/docker/volumes/volume_example_db-data/_data
/var/lib/docker/volumes/ name of volume /_data
ls 输出:
cd /var/lib/docker/volumes/volume_example_db-data/_data
# ls
base pg_commit_ts pg_hba.conf pg_logical pg_notify pg_serial pg_stat pg_subtrans pg_twophase pg_wal postgresql.auto.conf postmaster.opts
global pg_dynshmem pg_ident.conf pg_multixact pg_replslot pg_snapshots pg_stat_tmp pg_tblspc PG_VERSION pg_xact postgresql.conf postmaster.pid
推荐阅读
- vue.js - VueJS:Chrome devtools 不会立即更新数组(在父组件中)。为什么?
- javascript - React 组件中的分页 API 调用
- docker - Docker ROS 自动启动启动文件
- python - Python:有效地将非负整数转换为 0 到 1 之间
- eclipse - 欢迎屏幕的eclipse插件问题
- python-2.7 - TFIDF 值是如何转换的
- google-sheets - 如果单元格匹配,则索引它们
- ios - _hidden 在 Crashlytics 上使用 Bitrise - iOS 应用程序崩溃
- reactjs - 如何添加到mongodb,MERN应用验证失败错误
- react-native - this.props 在类方法中未定义