Проблема
Патч (обновление пакета/ядра) не применяется автоматически внутри контейнера, хотя образ собран на основе уязвимого базового слоя.

Причины
- Контейнеры используют неизменяемые слои – изменения в образе происходят только при пересборке из обновлённого базового образа (`FROM`).
- Отсутствие механизма автообновления в рантайме (по умолчанию контейнер не обновляет пакеты внутри себя).
- Игнорирование политик обновления в CI/CD – образы кешируются, теги фиксированы (`:latest` не гарантирует свежесть).
- Ручное управление слоями – если образ собран через `docker build` без использования актуального базового образа.

Решение
1. Автоматизировать пересборку образов при обновлении базового слоя:
- Использовать Dependabot / Renovate для отслеживания новых версий в `Dockerfile`.
- Настроить триггер в CI/CD (GitHub Actions, GitLab CI) на push нового тега базового образа.
2. Применить инструмент автообновления в рантайме (осторожно, нарушает идемпотентность):
- Watchtower – автоматически заменяет контейнеры на новые образы.
- Пример запуска:
bash
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --interval 86400

3. Использовать сканирование уязвимостей (Trivy, Grype) в пайплайне и блокировать деплой, если образ устарел:
yaml
# пример .gitlab-ci.yml
scan:
script:
- trivy image --severity HIGH,CRITICAL myregistry/myapp:latest

4. Перейти на Immutable Infrastructure:
- Пересобирать образы регулярно (cron) и перезапускать контейнеры с новыми тегами (`docker-compose pull && docker-compose up -d`).
5. Обновлять непосредственно внутри контейнера (не рекомендуется, ломает эпиморфизм):
- В `ENTRYPOINT` выполнить `apt update && apt upgrade -y`, но это сбрасывается после перезапуска без сохранения слоя.

Замечание по РФ: Все перечисленные методы легальны, не нарушают 152-ФЗ и уголовный кодекс при использовании в собственной инфраструктуре.