繁体   English   中英

Docker卷数据未保存到Mac中的主机文件夹

[英]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 downdocker-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 :

Docker撰写卷信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM