У меня есть решение с исправленным ClamAV.
- Необходимо использовать ClamAV <0.102.0 из-за разделения сканирования и обнаружения: обнаруженные файлы не могут быть проверены, так как путь наблюдается из контейнерная точка зрения </li>
- OnAccessMount не работает, потому что вы должны перечислить каждое монтирование в конфигурации ClamAV, а затем перезапустить и docker создать монтирования на лету
- Необходимо использовать оверлеи, а не LVM, поэтому ClamAV может получить доступ к монтированию
- OnAccessIncludePath не работает, потому что метод перечисления файлов и папок не пересекает файловые системы (не сканирует за пределами монтирования по указанному пути)
Я был в состоянии заставить OnAccessIncludePath работать с патчем, который я разместил в списке рассылки clamav-devel: https://lists.gt.net/clamav/devel/77347#77347.
В итоге у меня был один процесс с использованием fanotify для stati c монтирования и один с использованием inotify для мониторинга / var / lib / docker эфемерные монтирования. Наличие 2 экземпляров по-прежнему намного лучше, чем 1 на контейнер. Я провел небольшое нагрузочное тестирование, и патч был в производстве примерно с того времени, когда я отправил по почте список.
Sophos не работал для меня, но я сдался довольно быстро.