Назад | Перейти на главную страницу

Docker-compose // Ошибка создания среды выполнения OCI // Ошибка pthread_create

Недавно я арендовал VPS как частную площадку и для обучения докеру. Я хочу разместить несколько веб-сервисов за nginx-proxy вместе с docker-letsencrypt-nginx-прокси-компаньон.

Настроить

Сервер работает под управлением Ubuntu 18.04.4 LTS, Docker версия 19.03.6, сборка 369ce74a3c, docker-compose версия 1.17.1Строение неизвестно.

4 ГБ vRAM, 4 ядра (оборудование работает на Intel Xeon)

Эта проблема

Как только я хочу запустить более 8 контейнеров, я получаю ошибки strage. Есть несколько разных ошибок, и я не могу особенно сказать, когда какая из них появляется:

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
ERROR: for joomla_joomladb_1  Cannot start service joomladb: read unix @->@/containerd-shim/24f42b8[...]32fa1.sock:
read: connection reset by peer: unknown

Кроме того, в связи с этим иногда я получаю странные ошибки в моей оболочке при вводе любой команды. Когда сервер находится на этой стадии, я не могу выполнить root-доступ или перезагрузиться с помощью командной строки. Вы можете видеть, как я пытаюсь напечатать sudo в этой картине: Ошибки с любой командой. Даже выключение или перезагрузка

Что я пробовал

$ systemctl show --property=DefaultTasksMax
 DefaultTasksMax=4659
$ systemctl status docker
...
  Tasks: 52
...

Теперь я обнаружил проблему: хостинг-провайдер ограничивает количество задач виртуальных машин. Эта техника называется пользовательские beancounters.

Есть файл, в котором вы можете проверить эти ограничения, установленные Виртуоззо в /proc/user_beancounters

Итак, когда вы знаете, что ваш VPS размещен на Virtuozzo, вы можете cat этот файл или использование скриптов из Вот прочитать ограничения на ресурсы.

Файл в основном описывает 3 поля:

  • Ручной: текущее использование ресурса
  • ошибка: количество всех отказов в выделении ресурсов
  • барьер/предел: управляющий параметр, который обычно определяет нормальную границу выделения ресурсов

(скопировал это из Вот)

Если отображаемое значение в любом поле безумно высокое, это означает, что эти ресурсы не ограничены.

Ключевой линией в моем случае было numprocs. Он сообщает максимальное количество задач, которое разрешено запускать машине. И, как процессы в докер-контейнере также работать на такое же ядро в качестве VPS учитывается все.

Итак, единственным выходом здесь было переключиться на другого хостера, который не использует ПК Р-Виртуализация (например)!