Docker 卷数据不会保存到 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文件。但是我在./my_volume_space中没有看到任何.sql文件,而只是./my_volume_space中一个空的data目录

此外,如果我docker-compose down并再次docker-compose up,我可以看到我在数据库中的数据现在已经消失了。

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

有人可以告诉我我做错了什么吗?

谢谢

路径卷在带有 postgres 映像、源的 docker-machine (macOS) 上不起作用。

解决方法是使用命名卷。示例 docker-compose.yaml:

services:
test-postgres-compose :
...
volumes :
- pgdata:/var/lib/postgresql/data
...
volumes :
pgdata :

码头工人撰写卷信息

我相信容器上的卷路径是/var/lib/postgresql/data而不是/var/lib/postgresql

相关内容

  • 没有找到相关文章

最新更新