Docker Sandboxes и microVM: как Docker изолирует AI-агентов
Новая технология Docker, созданная для безопасного запуска AI-кодинговых агентов, может пригодиться и за пределами сценариев ИИ.
С ростом agentic AI разработчикам нужны решения, которые одновременно безопасны и достаточно легки для запуска агентов. Агент должен уметь делать все, что может человек-разработчик с контейнерами — собирать их, устанавливать в них ПО и изменять доступные ему файлы, — но так, чтобы не подвергать хост-систему риску разрушительных действий со стороны агента doing something destructive.
Docker предлагает несколько уровней изоляции для запуска контейнеров, и у каждого есть свои компромиссы. Одни варианты быстрее, но изначально менее безопасны; другие медленнее, зато лучше защищены от атак или утечек. В апреле Docker представила новый уровень изоляции для контейнеров, специально созданный для запуска AI-агентов: Docker Sandboxes.
Docker Sandboxes: что это такое
Docker Sandboxes используют так называемый microVM для изоляции контейнеров. microVM — это виртуальная машина, которая для изоляции работает на нативном гипервизоре хостовой операционной системы. Приставка micro отражает назначение такой VM: она рассчитана на нагрузки, которым нужно быстро запускаться, быстро завершаться и не потреблять слишком много системных ресурсов.
Сам microVM — это собственный кроссплатформенный проект Docker, рассчитанный на прямую работу на архитектуре гипервизора для всех трех основных платформ: Linux (KVM), macOS (Hypervisor.framework) и Microsoft Windows (Windows Hypervisor Platform). Поведение microVM должно быть одинаковым на всех платформах, при этом для каждого гипервизора используется нативная поддержка.
Обычно Docker daemon работает прямо на хосте. Контейнеры запускаются с минимальными накладными расходами, но и с меньшей изоляцией по сравнению с полноценной виртуальной машиной. В случае microVM у каждого контейнера есть собственный изолированный экземпляр Docker daemon, а также собственное ядро. Внутри microVM не сохраняется постоянное состояние, поэтому такие окружения можно завершать и перезапускать по мере необходимости.
Docker Sandboxes и agentic AI
Сочетание маневренности, легкости и полной изоляции должно сделать Docker Sandboxes лучшей средой для AI-агентов, чем обычные контейнеры или полноценные VM. Обычные контейнеры не дают достаточной изоляции от хоста, чтобы не допустить проблем со стороны AI-агента, а полноценные VM дают слишком большую накладную нагрузку и плохо подходят для разовых, неформализованных agentic-нагрузок.
Сандбоксированный контейнер дает тому, что внутри него запускается, локально ограниченный доступ к каталогам, сетевым конечным точкам и секретам; все это внедряется во время выполнения и не является частью определения контейнера. Агент может запускать все команды Docker (build, run, compose), но в полной изоляции от других контейнеров и от хостовой системы.
Даже с такими улучшениями проблемы все еще возможны. Например, сандбоксированный агент может без ограничений загружать и собирать контейнеры, расходуя пропускную способность и системные ресурсы. Но подобное поведение гораздо проще локализовать и устранить, чем, скажем, полностью испорченную систему или удаленные production-данные.
Docker Sandboxes за пределами ИИ
Хотя Docker Sandboxes и были задуманы для AI-кодинговых агентов, их возможности выходят далеко за рамки agentic AI-нагрузок. В целом Docker Sandboxes дают контейнерам еще один уровень изоляции и гибкости.
Возьмем анализ вредоносного ПО. Образец malware, запущенный в microVM, можно прогонять через множество разных сценариев анализа — и за то же время больше раз, чем в обычной VM, потому что microVM запускаются и завершаются быстрее.
Есть и другие сценарии, как отмечает Nathan Flurry из Rivet. Один из вариантов — дать третьим сторонам запускать недоверенный код. Например, платформу для программирования, где пользователи загружают и исполняют собственный код, можно настроить так, чтобы microVM запускали этот код в изоляции и автоматически завершали его по достижении какого-либо лимита ресурсов. Другой сценарий — конвейеры сборки ПО. Если изолировать каждый процесс сборки внутри контейнера microVM, команды смогут избежать конфликтов между сборками и добиться более предсказуемой производительности.
Сейчас система Docker Sandboxes ориентирована прежде всего на клиентов agentic AI, но внутри сандбоксированного контейнера можно запустить shell и выполнить собственный код. Также можно собрать кастомный sandbox с помощью template или kit, хотя kits пока находятся в экспериментальной стадии.
Docker Sandboxes и сопутствующие инструменты открывают путь к множеству экспериментов с microVM. AI-агенты, возможно, и являются исходным и самым заметным вариантом использования Docker Sandboxes, но они — лишь верхушка айсберга.
Материал — перевод статьи с английского.
Оригинал: Docker Sandboxes and microVMs, explained