docker-compose 在主机中存储的 docker 卷在哪里?

kev*_*evP 7 postgresql docker docker-compose

考虑以下docker-compose文件

version: "2"
services:
  postgres:
    image: postgres:9.6
    volumes:
      - ./vol_folder:/var/lib/postgresql
    ports:
      - "5432:5432"
Run Code Online (Sandbox Code Playgroud)

这是我的命令历史记录 mac

docker-compose up

psql -h 192.168.99.100 -p 5432 -U postgres

create table test (my_id bigserial primary key);
INSERT INTO test (my_id) values (1);
SELECT * FROM test;

\q
Run Code Online (Sandbox Code Playgroud)

本来我认为上面的命令会导致在主机中.sql创建一个文件./vol_folder。但我没有看到任何.sql文件,./vol_folder而只是一个空data目录./vol_folder

此外,如果我docker-compose downdocker-compose up我再次可以看到数据库中的数据我现在没有了。

我怀疑当我在映像运行时创建数据时,数据没有存储回,./vol_folder因此当我重新启动时,主机上没有任何东西可以挂载。

所以我想我的问题是我的主机中存储的卷在哪里?docker volume 只有一种方式(例如,主机数据到容器)而不是两种方式吗?

ama*_*ion 10

这些卷通常会存储在 /var/lib/docker/volumes/

要了解更多信息,请尝试以下命令

docker volume ls
docker volume inspect <volume identifier>
Run Code Online (Sandbox Code Playgroud)

另见:https : //www.linux.com/learn/docker-volumes-and-networks-compose