【发布时间】:2021-04-23 20:25:14
【问题描述】:
我在 Docker 容器中创建了一个 PostgreSQL 数据库,并尝试创建一个本地文件夹并将其挂载为我们正在运行的容器的数据卷,以将所有数据库文件存储在已知位置,如下所示:
docker run -d `
--name postgres-dev `
-e POSTGRES_PASSWORD=<my_password> `
-v //D/dev/docker/postgresql/data/:/var/lib/postgresql/data `
-p 5432:5432 -d postgres
虽然我创建了图像并通过 pgAdmin 连接它没有任何问题,但即使在创建表并向其中插入数据之后,D:\dev\docker\postgresql\data 位置上也没有文件。
我想使用本地 Windows 文件夹 D:\dev\docker\postgresql\data 作为数据卷,但我不确定我是否正确转换了示例的以下行:
来自-v ${HOME}/postgres-data/:/var/lib/postgresql/data
给-v //D/dev/docker/postgresql/data/:/var/lib/postgresql/data
我认为这个例子是针对 Linux 的,但我不知道 ":" 之前和之后的第一和第二部分是什么,请你澄清一下这些部分以及我应该如何使用它正确使用我的本地 Windows 文件夹 D:\dev\docker\postgresql\data 作为数据卷?
【问题讨论】:
-
@tink 你确定你回答得很好吗? -v ${HOME}/postgres-data/:/var/lib/postgresql/data
-
是的,绝对确定......我很欣赏容器是 Linux;但问题很可能出在 Windows 方面。
-
其实不是,问题是添加数据到db后没有创建文件。但是如果你有时间在 Linux 上尝试一下,然后检查
${HOME}/postgres-data/位置是否有文件也会很有用。 -
为我工作 w/
docker run -d --name postgres-dev -e POSTGRES_PASSWORD=password -v /home/tink/D/dev/docker/postgresql/data/:/var/lib/postgresql/data -p 5433:5433 -d postgres...必须选择不同的端口,因为我在本机运行 postgres。 -
@Diana Stack Overflow 旨在成为一个问答库,为未来的读者提供资源。当您提出问题并获得答案时,您无法将问题编辑为完全不同的内容。编辑用于小的更正和澄清。通过更改问题,您会使现有答案无效,未来的读者将不会从这篇文章中受益。如果您有新的后续问题,请将它们作为新问题提出并链接到此问题以获取上下文
标签: windows postgresql docker containers