将Docker卷与postgresql一起使用以验证其是否已保存在主机文件系统上

时间:2018-09-08 15:15:31

标签: postgresql docker dockerfile

我正在尝试使Docker卷工作。

我已经在Dockerfile中定义了一个卷,如下所示:

version: "3"

services:
  redis:
    image: redis:alpine
    ports:
    - "6379:6379"

  db:
    image: postgres:9.4
    #container_name: db
    volumes:
      - "db-data:/var/lib/postgresql/data"


volumes:
  db-data:

现在我的问题是,当我做一个docker-compose时,我看不到我的数据持久保存在本地笔记本电脑(或服务器)上。

我只想测试/验证我的数据是否已保存到主机的文件系统中,因此,如果我在重新启动时启动/停止docker,它将从主机上的数据库文件中读取数据。

1 个答案:

答案 0 :(得分:1)

该构造将数据保存在名为的卷中;如果您以/var/lib/docker/volumes下面的根目录查看,则应该可以在那里看到它(尽管通常不建议在/var/lib/docker中乱扔;我相信这是Docker Compose将会改变的原因之一使其独特的名称。

如果要将数据保存在主机目录中,请将卷声明更改为显式具有相对或绝对路径。您将不需要显式的卷声明,因此可以完全删除卷块。这样您将得到一个docker-compose.yml,看起来像:

version: "3"
services:
  db:
    image: postgres:9.4
    volumes:
      - "./db-data:/var/lib/postgresql/data"