【问题标题】:Docker containers exit code 132Docker 容器退出代码 132
【发布时间】:2020-03-30 12:16:46
【问题描述】:

docker 像往常一样在我计算机上的现有容器(如 kafka、mysql、postgres)上正常工作。比我想下载新版本的 postgres 和docker run 命令总是显示exit code 132

无论我要启动哪个容器,都可以使用132 立即退出 我检查了docker eventsdocker logs,但一切都是空的。

hello-world这样的简单容器可以正常启动。

我发现一篇文章提到了 sse4_2,但它是由 CPU 支持的。 据我记得自从它工作以来没有系统更新。

可能是什么原因?

【问题讨论】:

  • 你的 CPU 支持 AVX 指令集吗? For your reference.
  • CPU 上缺少 AVX2 也有退出代码 132,退出代码似乎与非法操作码信号有关。
  • 如果您的 docker 主机是 RHEL 7,那么您必须使用 podman 而不是 docker 命令。否则使用其他 linux 风格(如 ubuntu)作为您的 docker 主机。更多信息 bugzilla.redhat.com/show_bug.cgi?id=1795574

标签: docker


【解决方案1】:

第 1 步:
检查你的 CPU 是否支持amd64-avx:
$ sudo cat /proc/cpuinfo | grep avx
如果它支持avx,它应该高亮avx,如果不支持,它将返回空。

第 2 步:
要解决此问题,请运行为支持 amd64 而不是 amd64-avx 而构建的映像,这可能意味着您必须运行早期版本。

mongodb docker 镜像就是一个很好的例子,最新版本支持amd64-avx,并且会拒绝在不支持 avx 且存在错误代码 132 的 CPU 上运行。

但是当你运行 4.4 版本的 mongodb 时,它运行没有任何问题。

有关此的更多信息:
Docker and -march native

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 2018-10-08
    • 2019-04-07
    • 2020-09-22
    相关资源
    最近更新 更多