【问题标题】:Postgresql as docker container not starting with data from mapped volumePostgresql 作为 docker 容器不从映射卷中的数据开始
【发布时间】:2020-03-24 20:07:37
【问题描述】:

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

无法打开文件“base/16384/2611”:没有这样的文件或目录

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

对我来说,这似乎是一个用户/权限问题,但不知道如何解决这个问题。 我尝试以 root 身份运行容器,但没有帮助。

有什么建议吗?

我正在使用 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='*'

【问题讨论】:

    标签: postgresql docker ubuntu docker-compose


    【解决方案1】:

    我没有移动实际的数据文件夹,而是根据suggestion on the docker forums 在 docker 容器中使用 pg_dump 和 pg_restore。这成功了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-11
      • 2022-08-17
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      相关资源
      最近更新 更多