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



我正在使用此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"

第一次运行容器后,我在数据库中创建了一些表。之后,我停止我的容器并停止小艇(小艇停止)。之后,我开始小艇(小艇)并启动 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 已更改?我已经读过关于做事的新方法,但这不应该是向后兼容的吗?

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

这不是小艇独有的,这是由于docker机器使用root。 在重新启动后不会保留的卷。我建议使用 命名卷(如果希望数据持久保存,而不是硬编码) Linux VM 中的路径。例如:

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

最新更新