[英]Docker volume data does not get saved to host folder in mac
这是我的docker撰写文件
version "2"
services:
my_postgres:
image: postgres:9.6
volumes:
- /Users/my_user_name/test_docker/my_volume_space:/var/lib/postgresql
ports:
- "5432:5432"
我在Mac中输入了以下命令
docker-machine start
docker-machine env
evcal "$(docker-machine env default)"
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
最初,我认为上述命令将导致在主机的./my_volume_space
中创建一个.sql
文件。 但我看不出有任何.sql
文件./my_volume_space
而只是一个空data
目录./my_volume_space
此外,如果我再次进行docker-compose down
和docker-compose up
我可以看到数据库中的数据现在消失了。
我怀疑在运行映像时创建数据时,数据不会存储回./my_volume_space
因此当我重新启动时,没有任何内容可以从主机上挂载。
有人可以告诉我我在做什么错吗?
谢谢
我相信容器上的卷路径是/var/lib/postgresql/data
而不是/var/lib/postgresql
路径卷在具有postgres映像source的 docker-machine(macOS)上不起作用。
解决方法是使用命名卷。 示例docker-compose.yaml:
services:
test-postgres-compose :
...
volumes :
- pgdata:/var/lib/postgresql/data
...
volumes :
pgdata :
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.