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/码头工人/卷/"包含文件,但是"/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

最新更新