[英]starting postgres container with persistant volume [docker compose]
[英]Postgresql as docker container not starting with data from mapped volume
在我的 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='*'
我没有移动实际的数据文件夹,而是根据docker 论坛上的建议在docker 容器中使用了 pg_dump 和 pg_restore。 这成功了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.