Kernel Images: решение с открытым исходным кодом для легких браузеров с песочницей

Общее введение

Kernel Images - это проект с открытым исходным кодом, размещенный на GitHub, который предоставляет легкую среду Chrome с песочницей. Он основан на технологиях Docker и Unikraft для создания изолированных экземпляров браузера, поддерживает такие фреймворки автоматизации, как Playwright и Puppeteer, подходит для веб-тестирования, сбора данных и разработки агентов искусственного интеллекта. Проект поддерживается командой onkernel под лицензией Apache 2.0, с открытым кодом и вкладом сообщества. Пользователи могут развернуть браузерную среду с помощью простой конфигурации, наслаждаясь преимуществами низкого потребления ресурсов и быстрого запуска. Официальные лица также предоставляют услуги хостинга, пользователи могут присоединиться к списку ожидания для получения дополнительных возможностей.

Kernel Images:轻量级沙盒化浏览器的开源解决方案

 

Список функций

  • Предоставляет предварительно настроенный браузер Chrome с поддержкой протокола Chrome DevTools.
  • Совместимость с Playwright и Puppeteer для простой интеграции сценариев автоматизации.
  • Предоставляет удаленный GUI-интерфейс через noVNC для визуального мониторинга и управления.
  • интегрированный (как в интегральной схеме) Антропология (используется в форме номинального выражения) Компьютер Используйте агент, поддерживающий текстовые и голосовые действия.
  • Реализация unikernel, основанная на Unikraft, поддерживает автоматический переход в спящий режим и снимки состояния.
  • Поддерживает развертывание контейнеров Docker и совместим с Linux, macOS и Windows.
  • Сверхнизкая задержка при холодном старте (менее 20 мс) для высокопроизводительных сценариев.
  • Конфигурация открытого порта для простого подключения и отладки внешних инструментов.

 

Использование помощи

Процесс установки

Kernel Images поддерживает развертывание как в Docker, так и в Unikraft. Ниже приведены подробные шаги для Linux, macOS (пользователям Windows необходимо установить Docker Desktop).

1. Установите Docker

Убедитесь, что Docker установлен в вашей системе. Для проверки выполните следующую команду:

docker --version

Если он не установлен, обратитесь к официальному руководству:

  • Ubuntu/Debian:
    sudo apt update
    sudo apt install -y docker.io
    sudo usermod -aG docker $USER
    
  • macOS: Загрузите Docker Desktop с официального сайта Docker.
  • Windows: установите Docker Desktop и включите WSL 2.

2. Клонирование хранилищ проектов

Клонируйте репозиторий Kernel Images с помощью Git:

git clone https://github.com/onkernel/kernel-images.git
cd kernel-images

3. Создайте образ Docker

В корневом каталоге проекта создайте образ Docker:

docker build -t kernel-images -f containers/docker/Dockerfile .

Убедитесь, что образ был создан успешно:

docker images | grep kernel-images

4. Запустите контейнер Docker

Запустите экземпляр Chrome в режиме "песочницы":

docker run -d -p 9222:9222 -p 6080:6080 --name kernel-browser kernel-images
  • -p 9222:9222: Карта портов Chrome DevTools для автоматического подключения фреймворков.
  • -p 6080:6080: Соединяет порт noVNC для удаленного доступа к графическому интерфейсу.
  • --name kernel-browser: Именованные контейнеры для удобства управления.

5. (Необязательно) Развертывание Unikraft

Unikraft обеспечивает более легкое развертывание юникернела для высокопроизводительных сценариев. Установите инструментарий Unikraft:

  • консультация unikernels/unikraft-cu/README.mdНиже приведен список зависимостей, которые необходимо установить (например. kraftkit).
  • Создайте образ юникернела:
    cd unikernels/unikraft-cu
    make
    
  • Запустите экземпляр:
    kraft run
    

Основные функции

1. Система автоматизации подключения

Среда Chrome от Kernel Images поддерживает как Playwright, так и Puppeteer; ниже приведен пример Playwright:

  • Установить драматурга:
    npm install playwright
    
  • Создание сценариев test.js::
    const { chromium } = require('playwright');
    (async () => {
    const browser = await chromium.connectOverCDP('http://localhost:9222');
    const page = await browser.newPage();
    await page.goto('https://example.com');
    console.log(await page.title());
    await browser.close();
    })();
    
  • Запустите скрипт:
    node test.js
    

2. Удаленный мониторинг графического интерфейса

Kernel Images предоставляет удаленный GUI-интерфейс через noVNC. После запуска контейнера зайдите в http://localhost:6080(Убедитесь, что порт 6080 С помощью интерфейса noVNC можно следить за состоянием браузера, отлаживать скрипты или проверять сетевые запросы в режиме реального времени (mapped). Интерфейс поддерживает работу с мышью и клавиатурой и подходит для удаленного управления.

3. Автоматизированная спячка и моментальные снимки

В режиме Unikernel браузер автоматически переходит в спящий режим при отсутствии сетевой активности, занимая при этом очень мало ресурсов (почти ноль). Во время спящего режима система генерирует снимок состояния браузера (включая файлы cookie, положение страницы, масштаб окна и т. д.). Состояние восстанавливается:

kraft resume

Функция моментальных снимков подходит для длительных задач, таких как ползание или тестирование, обеспечивая беспрепятственное продолжение задач после прерывания.

4. Интеграция антропных агентов

Kernel Images интегрируется с агентом Anthropic's Computer Use для поддержки управления браузером с помощью текстовых или голосовых команд. Процедура:

  • Зарегистрируйте аккаунт в Anthropic, чтобы получить ключ API.
  • Установка переменных окружения:
    export ANTHROPIC_API_KEY=your-api-key
    
  • Запустите сценарий агента (находится в папке agent-loop.py):
    python agent-loop.py
    
  • Введите инструкции на экране чата, например "Откройте сайт example.com и сделайте скриншот" или "Заполните форму".

5. холодный старт со сверхмалой задержкой

Время холодной загрузки в режиме Unikernel составляет менее 20 миллисекунд, что идеально подходит для сценариев, требующих быстрого времени отклика (например, для задач автоматизации, управляемых событиями), в то время как режим Docker загружается немного медленнее, но все равно превосходит традиционные виртуальные машины.

предостережение

  • Убедитесь, что порт 9222 ответить пением 6080 Не занято.
  • Регулярно обновляйте зеркала для получения новейших функций:
    docker pull kernel-images:latest
    
  • Развертывание Unikraft требует знакомства со средой Linux, поэтому рекомендуется обратиться к официальной документации.
  • Системные требования: не менее 2 ГБ оперативной памяти, 10 ГБ дискового пространства.

 

сценарий применения

  1. Автоматическое веб-тестирование
    Разработчики используют Kernel Images для запуска сценариев Playwright, чтобы имитировать действия пользователей и тестировать функциональность сайта. Среда "песочницы" обеспечивает изоляцию тестов и подходит для интеграции CI/CD.
  2. Сбор данных
    Аналитики данных развертывают Kernel Images для пакетного доступа к веб-страницам и извлечения структурированных данных. Функции гибернации и моментальных снимков поддерживают длительные задачи и снижают затраты на сервер.
  3. Разработка агентов искусственного интеллекта
    Разработчики ИИ используют агентов Anthropic для создания интеллектуальных систем, поддерживающих голосовое или текстовое управление для решения сложных задач, таких как автоматическое заполнение форм или поиск контента.
  4. Удаленная отладка и совместная работа
    Команды удаленно наблюдают за браузерами через интерфейс noVNC, что идеально подходит для совместной работы в разных местах или облачных разработок, и просматривают рендеринг страниц и выполнение сценариев в режиме реального времени.

 

QA

  1. Какие операционные системы поддерживает Kernel Images?
    Режим Docker поддерживает Linux, macOS и Windows (требуется Docker Desktop). Режим unikraft в основном поддерживает Linux.
  2. Как обеспечить безопасность среды "песочницы"?
    Экземпляры браузера работают в изолированном контейнере Docker или юникернеле, полностью отделенном от хост-системы, что снижает риски безопасности.
  3. Требуется ли функция "Антропный агент"?
    Нет, учетная запись Anthropic не требуется для работы с базовым браузером. Для работы с прокси-функциями требуется ключ API.
  4. Насколько мала задержка при холодном старте?
    Режим Unikernel загружается менее чем за 20 миллисекунд, режим Docker работает немного медленнее, но все равно эффективно.
  5. Как я могу принять участие в разработке проекта?
    консультация CONTRIBUTING.mdЕсли вы не знаете, что делать, отправьте запрос на доработку или создайте проблему на GitHub.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...