我的docker compose文件包含三个容器:web,nginx和postgres。Postgres看起来像这样:
postgres:
container_name: postgres
restart: always
image: postgres:latest
volumes:
- ./database:/var/lib/postgresql
ports:
- "5432:5432
我的目标是安装一个./database
与postgres容器内称为的本地文件夹相对应的卷/var/lib/postgres
。当我启动这些容器并将数据插入到postgres中时,我验证了/var/lib/postgres/data/base/
所添加数据的全部内容(在postgres容器中),但是在我的本地系统中,./database
只data
在其中获得了一个文件夹,即已./database/data
创建,但它为空。为什么?
笔记:
根据Nick的建议,我做了一个docker inspect
发现:
"Mounts": [
{
"Source": "/Users/alex/Documents/MyApp/database",
"Destination": "/var/lib/postgresql",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Name": "e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35",
"Source": "/var/lib/docker/volumes/e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35/_data",
"Destination": "/var/lib/postgresql/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
这使得数据似乎被另一个我自己未编写的卷窃取了。不知道为什么。postgres图像为我创造了那个体积吗?如果是这样,是否有某种方法可以使用 该卷
而不是重新启动时要安装的卷?否则,是否有禁用该其他卷并使用我自己的卷的好方法./database
?
感谢尼克,我找到了解决方案!(和另一个朋友)在下面回答。
奇怪的是,解决方案最终不得不改变
volumes:
- ./postgres-data:/var/lib/postgresql
至
volumes:
- ./postgres-data:/var/lib/postgresql/data
我的docker组合文件有三个容器,web、nginx和Postgres。Postgres看起来是这样的: null
我的应用程序有3个组件, 1) 一种面向用户的组件,接收请求并将其存储到数据库中。2)一个后端组件,从数据库中读取数据,进行处理并将其发送到外部系统。3) 存储用户输入的数据库 我如何测试流程是这样的:用户输入数据- 注意:我尝试使用ddl auto:update,但它不起作用。
我在研究内存数据库的概念。有关这方面的文章说, 内存数据库系统是一种将数据完全存储在主存中的数据库管理系统。 他们讨论了这个概念的优点和缺点。 我的问题是如果这些数据库管理系统将数据完全存储在主存储器中, 停电后所有数据都消失了吗??? 还是有办法保护数据???
我开始使用Neo4j和Spring Data Neo4j的项目。我希望我的程序使用已经包含我的数据的本地数据库(而不是每次启动时加载数据),因为我有很多数据需要加载到数据库中。为了实现这个目标,我尝试设置一个用我的数据填充数据库的测试用例。但是,在我的测试完成后,数据库中的数据似乎不会持久:我使用neo4j控制台/shell查看数据库,发现它是空的。 我已经构建了一个小的例子项目,也不工作。任何对
目的 配置 NFS 共享为 OpenShift 节点提供存储,并且配置 OpenShift 持久卷以绑定至数据库 Pod。 环境 openshift v3.11.16/kubernetes v1.11.0 步骤 配置 NFS 共享持久卷1. 登录到 NFS 服务器 # ssh nfs.example.com2. 创建 config-nfs.sh 脚本,内容如下 #!/usr/bin/sh exp