在 docker 中运行的 Postgres 数据库一直挂起

2024-02-10

我正在使用 postgres docker 映像,在使用 docker 映像中运行的数据库几个月后,现在我得到的行为是,在一段时间后,它们只是挂起。我可以执行bin/bash但根本不能用 postgres 做任何事情;命令不会返回,容器也无法被关闭。甚至docker kill -s SIGKILL <container_id>不起作用;需要重新启动 docker 服务器才能停止它们。

我能看到的唯一确凿证据是这样的消息:

 WARNING:  could not open statistics file "pg_stat_tmp/global.stat": Operation not permitted

在所有容器上。任何人有任何想法我都会非常感激,因为目前这正在扼杀一切。


发生这种情况是由于 docker 容器中的用户权限不匹配。

列出容器中的相关文件:

$ docker exec <container> ls -l /var/lib/postgresql/data/pg_stat_tmp
-rw------- 1 root     root     [...] db_0.stat
-rw------- 1 root     root     [...] db_1.stat
-rw------- 1 root     root     [...] db_2.stat
-rw------- 1 postgres postgres [...] global.stat

我们可以看到所有的db_*.stat文件的所有者是root:root, while global.stat属于postgres:postgres.

检查 docker 用户为我们提供:

$ docker exec <container> whoami
root

因此,我们希望所有这些文件都归 postgres 用户所有。 幸运的是,这很容易!只需将用户设置为postgres,然后重新启动!

在 dockerfile 中:

USER postgres

使用 docker-compose:

services:
  postgres:
    image: postgres:13
    user: postgres
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 docker 中运行的 Postgres 数据库一直挂起 的相关文章

随机推荐

  • env 在 Bash 中到底做了什么?

    使用 Bash 在 Cygwin 下 时出现此行为 printf u00d5 u00d5 env printf u00d5 This results in the behavior I want 我在终端中使用 UTF 8 或 ISO 88
  • gcc 的自动矢量化消息是什么意思?

    我有一些代码想要快速运行 所以我希望我可以说服 gcc g 对我的一些内部循环进行矢量化 我的编译器标志包括 O3 msse2 ffast math ftree vectorize ftree vectorizer verbose 5 但是
  • 如何在wpf中通过行和列获取网格子项?

  • 如何解析单个 TFrecord 文件

    读取 tfrecords reader tf TFRecordReader serialized example reader read filename queue features tf parse single example TFR
  • 抛出异常时获取堆栈跟踪

    我现在正在调试一个使用许多不同线程的程序 有时会抛出异常 问题是无法知道哪个线程导致了问题 有没有一种简单的方法可以在抛出异常后获取堆栈跟踪 我想过简单地编写一条调试消息 但这将是一个巨大的 我想有比这个更好的技术 我正在使用 Visual
  • 如何将 BigQuery 脚本上传到 Github?

    需要一些帮助 因为 bigquery 脚本没有保存在本地 并且无法将其上传到 Github 您可以使用支持 GitHub 的 BigQuery 第三方 IDE这是歌利亚 一部分Potens io https potensio zendesk
  • 如何在flask应用程序的同一页面上发布输出结果?

    我有一个 Flask 应用程序 它接受一些文本作为输入 运行 python 脚本并在同一 html 页面上输出输出 但它会转到一个新页面 我不明白为什么它会转到新页面 这是我的 app py 文件 usr bin env python3 f
  • 如何确定 Pandas/NumPy 中的列/变量是否为数字?

    有没有更好的方法来确定变量是否在Pandas and or NumPy is numeric或不 我有一个自定义的dictionary with dtypes作为钥匙和numeric not作为价值观 In pandas 0 20 2你可以
  • Errno 13 运行 virtualenv 时权限被拒绝

    当尝试在 Mac OS X 上使用brew安装的 Python 2 7 创建 virtualenv 时 出现以下错误 Could not install packages due to an EnvironmentError Errno 1
  • 使用 Lucene 和 Java 进行分词、删除停用词

    我正在尝试使用 Lucene 从 txt 文件中标记并删除停用词 我有这个 public String removeStopWords String string throws IOException Set
  • AngularJS:根据条件ng-grid更改单元格的颜色

    这里是plnkr http plnkr co edit rPYJ1tGmnarEjf3io1d6 p preview代码 我想改变颜色age其所有行的单元格alert财产是真实的 我不知道该怎么做 我没有单独的警报列 Here you go
  • ViewPager 上的 onClick 未触发

    我在 a 上设置了一个点击侦听器ViewPager 但 onClick 事件永远不会被调用 我猜触摸事件检测ViewPager很干扰 但我不知道如何解决它 有人可以帮忙吗 Thanks mViewPager setOnClickListen
  • 生成数字序列[重复]

    这个问题在这里已经有答案了 我想在 asp net mvc2 中创建序列号 那么数字应该从 0 to 1000 我尝试如下 var seq Enumerable Range 1 1000 ViewData OrderNo seq In vi
  • 如何设置 Apache mod_rewrite 以重定向除一个子文件夹之外的所有子文件夹

    我刚刚创建了一个新网站 并准备从当前的网络服务器切换到新的网络服务器 当前的网络服务器将更名为 www2 新的网络服务器将被称为 www 我想将所有流量从 www2 重定向到 wwwexcept对于一个目录 我的目录结构如下所示 var w
  • 我们可以只提供@2x 图像吗?

    我们知道我们应该为 iphone ipad 应用程序提供正常尺寸的图像和 2x 尺寸的图像 但为一张图像提供双倍尺寸是一件无聊的事情 我做了一些测试 如果只有 2x图像 如果需要 系统会自动将 2x图像缩小到正常大小 所以在这种情况下 非视
  • Tensorflow - LSTM - “张量”对象不可迭代

    您好 我正在对 lstm rnn 单元使用以下函数 def LSTM RNN X istate weights biases Function returns a tensorflow LSTM RNN artificial neural
  • 以编程方式设置 LinearLayout 的重力

    我已按照说明为 Unity 制作新的 AdMob 插件 广告显示正确 但底部位置有问题 它们显示在屏幕顶部 我已将重力设置为底部 对于 FrameLayout 但横幅广告再次显示在屏幕顶部 我没有任何带有 LinearLayout Fram
  • 具体图和需要更有创意的解决方案

    有向图 V a E b 给出 每个顶点都有特定的权重 我们想要每个顶点 1 a 找到从该顶点可以到达的具有最大权重的顶点 更新 1 Paul 在 O b a log a 中准备了一个很好的答案 但是我 搜索 O a b 算法 如果有 有没有
  • 占位符 CSS 调用问题

    通常我们使用这个想法 不同的类用逗号分隔 测试 test1 但是这里只要我们单独调用类就可以正常工作 为什么会出现这个问题 演示在这里http jsfiddle net 6AR8n http jsfiddle net 6AR8n seper
  • 在 docker 中运行的 Postgres 数据库一直挂起

    我正在使用 postgres docker 映像 在使用 docker 映像中运行的数据库几个月后 现在我得到的行为是 在一段时间后 它们只是挂起 我可以执行bin bash但根本不能用 postgres 做任何事情 命令不会返回 容器也无