最近我租了一个 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
为 persystemctl edit docker.service
)。
$ systemctl show --property=DefaultTasksMax
DefaultTasksMax=4659
$ systemctl status docker
...
Tasks: 52
...
我在我的笔记本电脑上安装了完全相同的系统(除了虚拟化软件——VPS 在 Virtuozzo 上运行,我在本地使用 Quemu 和 virt-manager)——一切都按预期工作!
我尝试启动的任何容器都会出现问题。
hello-world
,其他撰写项目或已构建的项目...我联系了我的托管服务提供商,也提到了上述问题,并表示他们不会限制任何使用。