我的docker合成文件有三个容器,web、nginx和postgres。Postgres看起来是这样的:
postgres:
container_name: postgres
restart: always
image: postgres:latest
volumes:
- ./database:/var/lib/postgresql
ports:
- 5432:5432
我的目标是在postgres容器中挂载一个卷,该卷对应于一个名为。/database的本地文件夹,名为/var/lib/ postgress。当我启动这些容器并将数据插入postgres时,我验证/var/lib/postgres/data/base/充满了我添加的数据(在postgres容器中),但在我的本地系统中,./database只在其中获得一个数据文件夹,即./database/data被创建,但它是空的。为什么?
注:
这表明我的上述文件应该工作。 这个人正在使用docker服务,这很有趣
更新1
根据尼克的建议,我做了一个码头工人检查,发现:
"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?