考虑以下docker-compose文件
version: "2" services: postgres: image: postgres:9.6 volumes: - ./vol_folder:/var/lib/postgresql ports: - "5432:5432"
这是我在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
最初我认为上述命令将导致在主机的./vol_folder中创建.sql文件.但我没有在./vol_folder中看到任何.sql文件而只是./vol_folder中的空数据目录
此外,如果我使用docker-compose down和docker-compose up,我可以看到数据库中的数据现在已经消失了.
我怀疑当我在图像运行时创建数据时,数据不会存储回./vol_folder,因此当我重新启动时,没有任何东西可以从主机上安装.
所以我想我的问题是我的主机中存储的音量在哪里? docker volume只有一种方式(例如主机数据到容器)不是两种方式吗?
卷通常存储在/ var / lib / docker / volumes /中的某个位置
要了解更多信息,请尝试以下命令
docker volume ls docker volume inspect <volume identifier>
另见:https://www.linux.com/learn/docker-volumes-and-networks-compose