我正在尝试使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,它将从主机上的数据库文件中读取数据。
答案 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"