【问题标题】:Docker Postgres with windows share带有 Windows 共享的 Docker Postgres
【发布时间】:2019-09-25 21:16:02
【问题描述】:

我从 Linux 迁移到 Windows,并尝试使用包含数据库的已安装目录(从我的 Linux 安装复制)设置一个 postgres 容器。

这不起作用。

  • Windows 挂载始终归 root 所有
  • Postgres 不在 root 下运行

如何让这个邪恶的组合发挥作用?

【问题讨论】:

  • 您不能将 Linux 安装中的数据目录与在 Windows 上运行的 Postgres 服务器一起使用。
  • 没有。它是一个 Windows 主机和 Linux postgres 容器。该目录最初是从 Linux 机器上复制的,但除了历史背景之外,它并不重要。

标签: windows postgresql docker mount


【解决方案1】:

您没有提供太多细节,因此很难说出实际出了什么问题。但是,使用 Windows 挂载数据库数据文件在 Windows Docker 上设置 Postgres 存在一个已知问题。在这种情况下,运行 docker logs 将显示以下内容

waiting for server to start....FATAL:  data directory "/var/lib/postgresql/data" has wrong ownership
HINT:  The server must be started by the user that owns the data directory.
 stopped waiting
pg_ctl: could not start server

不幸的是,没有办法解决这个问题,因此您无法使用 Windows 挂载,请参阅Postgres Data has wrong ownership。您可以使用 docker 卷来使数据库数据独立于 docker postgres 容器,使用以下命令

docker create -v /var/lib/postgresql/data --name PostgresData alpine
docker run -p 5432:5432 --name yourPostgres -e POSTGRES_PASSWORD=yourPassword -d --volumes-from PostgresData postgres

你可以在Setup Postgresql on Windows with Docker找到更详尽的解释

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2019-02-24
    • 2016-03-13
    • 1970-01-01
    • 2021-11-11
    • 2020-12-06
    • 2020-11-13
    相关资源
    最近更新 更多