AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1017994
Accepted
void
void
Asked: 2020-05-21 13:07:01 +0800 CST2020-05-21 13:07:01 +0800 CST 2020-05-21 13:07:01 +0800 CST

Docker-compose // OCI 运行时创建失败 // pthread_create 失败

  • 772

最近我租了一个 VPS 作为私人游乐场和学习 docker。我想在 nginx-proxy 和 docker-letsencrypt-nginx-proxy-companion后面托管一些网络服务。

设置

服务器运行 Ubuntu 18.04.4 LTS,Docker版本 19.03.6,构建 369ce74a3c,docker-compose版本 1.17.1,构建未知。

4GB vRAM,4vCores(硬件在 Intel Xeon 上运行)

问题

一旦我想运行超过 8 个容器,我就会遇到错误。有一些不同的错误,我不能特别说明其中哪一个出现的时间:

  • OCI runtime create failed例如,当尝试使用 mysql 将 joomla 作为 compose-project 启动时:
ERROR: for joomla_joomladb_1  Cannot start service joomladb: OCI runtime create failed:
unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v1.linux/moby/741c[...]6e3/log.json:
no such file or directory): fork/exec /usr/sbin/runc: resource temporarily unavailable: unknown
  • socket reset
ERROR: for joomla_joomladb_1  Cannot start service joomladb: read unix @->@/containerd-shim/24f42b8[...]32fa1.sock:
read: connection reset by peer: unknown
  • pthread_create failed: Resource temporarily unavailable我现在没有任何相应的日志。如果错误再次发生,我将在此处发布它们。但一条线似乎总是parent id not found
  • 分叉失败。当出现这个错误时,我不能再做任何事情了。看下一点:

此外,与此相关的是,有时我在输入任何命令时会在我的 shell 上遇到一些奇怪的错误。当服务器处于这种状态时,我既不能 su 到 root 也不能​​根据命令行重新启动。你可以看到我试图sudo在这张图片中输入:任何命令的错误。甚至关机或重启

我试过的

  • 我在 Github 和其他一些人上看到了这份报告,并提到了机器上的最大任务限制。我已经将它设置为更高的音量,infinity但所有这些似乎都没有帮助。(我曾经将其更改/etc/systemd/system.conf为 per systemctl edit docker.service)。
$ systemctl show --property=DefaultTasksMax
 DefaultTasksMax=4659
$ systemctl status docker
...
  Tasks: 52
...
  • 我在我的笔记本电脑上安装了完全相同的系统(除了虚拟化软件——VPS 在 Virtuozzo 上运行,我在本地使用 Quemu 和 virt-manager)——一切都按预期工作!

  • 我尝试启动的任何容器都会出现问题。hello-world,其他撰写项目或已构建的项目...

  • 我联系了我的托管服务提供商,也提到了上述问题,并表示他们不会限制任何使用。

virtualization vps docker-compose fork virtuozzo
  • 1 1 个回答
  • 1651 Views

1 个回答

  • Voted
  1. Best Answer
    void
    2020-05-24T11:05:53+08:002020-05-24T11:05:53+08:00

    现在我发现了问题:托管服务提供商限制了虚拟机的任务数量。该技术称为用户 beancounters。

    有一个文件,您可以在其中检查Virtuozzo设置的这些限制,网址为/proc/user_beancounters

    因此,当您知道您的 VPS 托管在 Virtuozzo 上时,您可以cat使用此文件或使用此处的脚本来阅读此资源限制。

    该文件主要描述了3个字段:

    • hold:资源的当前使用情况
    • failcnt : 所有被拒绝的资源分配的数量
    • barrier / limit:一个控制参数,一般定义正常的资源分配边界

    (从这里复制)

    如果任何字段中显示的值非常高,则意味着这些资源没有被强制限制。

    在我的案例中,关键线是numprocs. 它告诉机器允许运行的最大任务数。由于docker 容器中的进程也与 VPS 在同一个内核上运行,因此所有这些都算在内。

    所以,这里唯一的解决方案是切换到另一个不使用 Virtuozzo 的主机(就像那样)!

    • 3

相关问题

  • 哪些 939 插槽芯片支持 AMD-V?

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve