Postgresql作为Docker容器不以映射卷中的数据开头

时间:2020-03-24 20:07:37

标签: postgresql docker ubuntu docker-compose

在我的Macbook上,postgresql在docker容器中运行,并且我使用映射的卷来保留数据。这在本地完美运行。但是,当我尝试在Ubuntu服务器上执行相同操作时,映射卷中的“初始”数据不起作用。 Postgres以“空”初始状态启动。 但是,当我在默认的postgres数据库中添加表和该表中的数据时,它是持久的。因此,体积映射似乎有效。 此外,有趣的是,当我尝试在新数据库中创建表时遇到错误。新数据库也具有持久性,但由于抛出错误而无法保存该表:

无法打开文件“ base / 16384/2611”:没有此类文件或目录

这是预期的,因为文件夹base / 16384不存在。

在我看来,这似乎是用户/权利问题,但不知道如何解决。 我尝试以根用户身份运行容器,但无济于事。

有什么建议吗?

我正在使用docker-compose或从命令行使用来启动容器;

docker run --rm --name pg -e POSTGRES_PASSWORD=[password] -d -p 5432:5432 -v /root/docker/volumes/postgres:/var/lib/postgresql/data postgres -c listen_addresses='*'

1 个答案:

答案 0 :(得分:0)

我没有在suggestion on the docker forums的docker容器内使用pg_dump和pg_restore来移动实际的数据文件夹。这样就可以了