docker - docker 在哪里存储卷数据?

标签 docker docker-compose docker-volume

我正在运行一个简单的 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”如果不是主机文件系统则指向哪里?

最佳答案

您可以检查您的并获取主机文件系统上的确切位置。您可以在下面找到一个命令输出的小示例,检查 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

关于docker - docker 在哪里存储卷数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68588463/

相关文章:

docker - 为什么docker stack ps显示所有 “DESIRED STATE”

python - 如何正确报告 Docker 容器内的可用 RAM?

docker - 如何启用Docker守护程序的 “debug”日志记录? (Ubuntu 16.04)

nginx - 在 Nginx 配置文件中访问容器名称

docker - 如何在 Dockerfile 上运行两个命令?

python - docker/ celery : Can't get celery to run

docker 的服务退出,代码为 'Exit 127' : The system cannot find the path specified

docker - 将容器中的文件夹公开为 Kubernetes Pod 中的卷

angular - Docker 和 Angular 2 : binded directory remains empty

docker build 忽略存储在我的卷中的现有数据和数据库配置