在小艇重启后数据丢失(postgres容器)

时间:2016-03-21 06:12:29

标签: docker virtualbox docker-compose docker-machine dinghy

我使用此docker-compose.yml

创建容器
postgresdb:
  container_name: "postgresdb"
  image: "postgres:9.5"
  volumes:
    - "/var/docker/data/postgresdb:/var/lib/postgresql/data"
  ports:
    - "5432:5432"
  environment:
    VIRTUAL_HOST: "postgresdb.docker"
    VIRTUAL_PORT: "5432"
    POSTGRES_DB: "dev"

第一次运行我的容器后,我在db中创建了一些表。 之后我停下我的容器并停止小艇(小艇停下来)。 之后,我开始小艇(小艇上升)并启动postgres容器。 桌子现在已经不见了。

我在dinghy vm内检查了,装载的卷就在那里。

版本

Macbook pro
Dinghy 4.3.1
docker-machine version 0.6.0, build e27fb87
docker-compose version 1.6.2, build 4d72027
Virtualbox 5.0.16 r105871 (with the latest extension pack)
Docker version 1.10.3, build 20f81dd

当我从docker-compose.yml移除卷装入并重新启动dinghy时,它按预期工作。当然,如果删除预期的容器,数据将会丢失。

所以问题仍然代表装载的卷。也许安装卷的api已经改变了?我已经了解了新的做事方式,但这不应该是向后兼容的吗?

1 个答案:

答案 0 :(得分:1)

https://github.com/codekitchen/dinghy/issues/162

  

这对于小艇来说并不是唯一的,这是由于码头工具使用根   在重新启动后不会持续的数量。我推荐使用   如果您希望数据保持不变,而不是硬编码,则命名卷   linux VM里面的路径。例如:

  volumes:
    - "mydatavol:/var/lib/postgresql/data"