Linux Labs

Контейнеры: Docker и compose / Ступень 10 из 11

Лимиты, OOMKilled и пользователь в контейнере

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 8 из 9 · лаба · 25 минсредняя

Контейнер перезапускается под нагрузкой

Служба импорта переехала в контейнер и с тех пор не обработала ни одной выгрузки — контейнер то запущен, то перезапускается. Найди причину и почини так, чтобы служба держала нагрузку в выделенных ей рамках.

Ситуация

Служба ingest разбирает ночные выгрузки продаж: файл CSV появляется в /srv/ingest/inbox, а сводка по нему — в /srv/ingest/done. До прошлой недели служба работала от системного пользователя ingest, и каталог /srv/ingest принадлежит ему. Потом её перенесли в контейнер Docker: контейнер создаёт скрипт /opt/ingest/run.sh, код импорта лежит рядом, в /opt/ingest.

С переезда не обработано ни одной выгрузки: сегодняшняя, на 40 МиБ, так и лежит в inbox, а docker ps показывает ingest то запущенным пару секунд, то перезапускающимся.

Задача

  1. ingest обрабатывает выгрузки и не перезапускается: проверка положит в inbox свою выгрузку на 40 МиБ и дождётся сводки. Код импорта в /opt/ingest не меняй.
  2. Лимит памяти контейнера ingest — 128 МиБ: столько выделено службе на этой машине.
  3. Процесс в контейнере работает от пользователя и группы ingest, как до переезда.
  4. После перезагрузки машины ingest поднимается сам.

Команды docker запускай через sudo: у пользователя student нет прямого доступа к Docker. Интернета на машине нет, образ alpine уже загружен.

Лаба · самостоятельно

Команды в этой лабе не даны: набирай их в терминале сам. Цели проверяются на машине после каждой команды.

Цели

0 из 4
  • ingest обрабатывает выгрузку 40 МиБ и не перезапускается, код импорта прежний — ещё не выполнена
  • Лимит памяти контейнера ingest — 128 МиБ — ещё не выполнена
  • Процесс в контейнере работает от пользователя и группы ingest — ещё не выполнена
  • После перезагрузки машины ingest поднимается сам — ещё не выполнена
Ctrl+Enter
Запустит машину node1 · Ubuntu 24.04

Машина запускается

Подсказки

0 из 3

Цели лабы

0 из 4
  • ingest обрабатывает выгрузку 40 МиБ и не перезапускается, код импорта прежний — ещё не выполнена
  • Лимит памяти контейнера ingest — 128 МиБ — ещё не выполнена
  • Процесс в контейнере работает от пользователя и группы ingest — ещё не выполнена
  • После перезагрузки машины ingest поднимается сам — ещё не выполнена
node1 Ubuntu 24.04

Цели лабы

0 из 4
  • ingest обрабатывает выгрузку 40 МиБ и не перезапускается, код импорта прежний — ещё не выполнена
  • Лимит памяти контейнера ingest — 128 МиБ — ещё не выполнена
  • Процесс в контейнере работает от пользователя и группы ingest — ещё не выполнена
  • После перезагрузки машины ingest поднимается сам — ещё не выполнена
Загрузка…