Kernel Images : une solution open source pour des navigateurs légers en bac à sable

Introduction générale

Kernel Images est un projet open source hébergé sur GitHub qui fournit un environnement Chrome léger et en bac à sable. Il est basé sur les technologies Docker et Unikraft pour construire des instances de navigateur isolées, prend en charge des cadres d'automatisation tels que Playwright et Puppeteer, convient aux tests Web, à l'exploration de données et au développement d'agents d'IA. Le projet est maintenu par l'équipe onkernel sous la licence Apache 2.0, avec un code ouvert et des contributions de la communauté. Les utilisateurs peuvent déployer l'environnement du navigateur par une simple configuration, en bénéficiant des avantages d'une faible consommation de ressources et d'un démarrage rapide. Officials fournit également des services d'hébergement, les utilisateurs peuvent s'inscrire sur la liste d'attente pour plus de fonctionnalités.

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

 

Liste des fonctions

  • Fournit un navigateur Chrome préconfiguré prenant en charge le protocole Chrome DevTools.
  • Compatible avec Playwright et Puppeteer pour une intégration facile des scripts d'automatisation.
  • Fournit une interface graphique à distance via noVNC pour permettre une surveillance et un contrôle visuels.
  • intégré (comme dans circuit intégré) Anthropique (utilisé comme expression nominale) Ordinateur Utiliser un agent qui prend en charge les actions textuelles et vocales.
  • L'implémentation de l'unikernel, basée sur Unikraft, prend en charge l'hibernation automatisée et les instantanés avec état.
  • Il prend en charge le déploiement de conteneurs Docker et est compatible avec Linux, macOS et Windows.
  • Démarrage à froid à très faible latence (moins de 20 ms) pour les scénarios à haute performance.
  • Configuration de ports ouverts pour faciliter la connexion et le débogage d'outils externes.

 

Utiliser l'aide

Processus d'installation

Kernel Images prend en charge les déploiements Docker et Unikraft. Vous trouverez ci-dessous les étapes détaillées pour Linux et macOS (les utilisateurs de Windows doivent installer Docker Desktop).

1. installer Docker

Assurez-vous que Docker est installé sur votre système. Exécutez la commande suivante pour vérifier :

docker --version

S'il n'est pas installé, se référer au guide officiel :

  • Ubuntu/Debian :
    sudo apt update
    sudo apt install -y docker.io
    sudo usermod -aG docker $USER
    
  • macOS : Téléchargez Docker Desktop depuis le site officiel de Docker.
  • Windows : Installez Docker Desktop et activez WSL 2.

2. clonage des entrepôts de projets

Cloner le dépôt Kernel Images en utilisant Git :

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

3. construire l'image Docker

Dans le répertoire racine du projet, construisez l'image Docker :

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

Vérifiez que l'image a été créée avec succès :

docker images | grep kernel-images

4) Exécuter le conteneur Docker

Démarrer une instance de Chrome dans un bac à sable :

docker run -d -p 9222:9222 -p 6080:6080 --name kernel-browser kernel-images
  • -p 9222:9222Les ports de Chrome DevTools pour les connexions automatisées au framework : Map Chrome DevTools ports for automated framework connections.
  • -p 6080:6080Port noVNC : permet de créer un port noVNC pour l'accès à l'interface graphique à distance.
  • --name kernel-browserLa gestion de l'information est facilitée par l'attribution d'un nom aux conteneurs.

5) (Facultatif) Déploiement d'Unikraft

Unikraft fournit un déploiement d'unikernel plus léger pour des scénarios de haute performance. Installez la chaîne d'outils Unikraft :

  • consultation unikernels/unikraft-cu/README.mdVoici une liste des dépendances à installer (par ex. kraftkit).
  • Construire l'image de l'unikernel :
    cd unikernels/unikraft-cu
    make
    
  • Exécutez l'instance :
    kraft run
    

Principales fonctions

1) Cadre d'automatisation de la connectivité

L'environnement Chrome de Kernel Images prend en charge à la fois Playwright et Puppeteer ; voici un exemple de Playwright :

  • Install Playwright :
    npm install playwright
    
  • Création de scripts 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();
    })();
    
  • Exécutez le script :
    node test.js
    

2. contrôle à distance de l'interface graphique

Kernel Images fournit une interface graphique à distance via noVNC. Après avoir démarré le conteneur, accédez à l'interface http://localhost:6080(Assurez-vous que le port 6080 L'interface noVNC permet de surveiller l'état du navigateur, de déboguer des scripts ou de vérifier des requêtes réseau en temps réel (mappé). L'interface prend en charge les opérations à la souris et au clavier et convient au contrôle à distance.

3. l'hibernation automatisée et les instantanés

En mode Unikernel, le navigateur hiberne automatiquement lorsqu'il n'y a pas d'activité réseau, avec une empreinte de ressources très faible (proche de zéro). Pendant l'hibernation, le système génère un instantané de l'état du navigateur (y compris les cookies, la position de la page, l'agrandissement de la fenêtre, etc.) L'état est restauré :

kraft resume

La fonction d'instantané convient aux tâches de longue durée, telles que l'exploration ou les tests, car elle permet de poursuivre les tâches en toute transparence après une interruption.

4. l'intégration des agents anthropiques

Kernel Images s'intègre à l'agent d'utilisation de l'ordinateur d'Anthropic pour permettre l'utilisation du navigateur par le biais de commandes textuelles ou vocales. Procédure :

  • Créez un compte Anthropic pour obtenir une clé API.
  • Définition des variables d'environnement :
    export ANTHROPIC_API_KEY=your-api-key
    
  • Exécutez le script de l'agent (situé dans le répertoire agent-loop.py) :
    python agent-loop.py
    
  • Saisissez des instructions dans l'écran de discussion, telles que "Ouvrez le site exemple.com et faites une capture d'écran" ou "Remplissez le formulaire".

5. démarrage à froid à très faible latence

Le mode Unikernel a un temps de démarrage à froid inférieur à 20 millisecondes, ce qui est idéal pour les scénarios nécessitant un temps de réponse rapide (par exemple, les tâches d'automatisation basées sur des événements), tandis que le mode Docker démarre un peu plus lentement mais reste plus performant que les machines virtuelles traditionnelles.

mise en garde

  • Assurez-vous que le port 9222 répondre en chantant 6080 Inoccupé.
  • Mettez régulièrement à jour les miroirs pour bénéficier des dernières fonctionnalités :
    docker pull kernel-images:latest
    
  • Le déploiement d'Unikraft requiert une certaine familiarité avec l'environnement Linux, et il est recommandé de se référer à la documentation officielle.
  • Configuration requise : au moins 2 Go de RAM, 10 Go d'espace disque.

 

scénario d'application

  1. Test d'automatisation Web
    Les développeurs utilisent les images du noyau pour exécuter des scripts Playwright afin de simuler les actions de l'utilisateur et de tester les fonctionnalités du site Web. L'environnement en bac à sable garantit l'isolation des tests et convient à l'intégration CI/CD.
  2. Extraction de données
    Les analystes de données déploient Kernel Images pour accéder par lots aux pages web et extraire des données structurées. Les fonctions d'hibernation et d'instantané prennent en charge les tâches de longue durée et réduisent les coûts du serveur.
  3. Développement d'agents d'intelligence artificielle
    Les développeurs d'IA utilisent les agents Anthropic pour construire des intelligences qui prennent en charge le contrôle vocal ou textuel de tâches complexes telles que le remplissage automatisé de formulaires ou la recherche de contenu.
  4. Débogage et collaboration à distance
    Les équipes surveillent les navigateurs à distance via l'interface noVNC, idéale pour la collaboration entre sites ou le développement basé sur le cloud, et visualisent le rendu des pages et l'exécution des scripts en temps réel.

 

QA

  1. Quels sont les systèmes d'exploitation pris en charge par Kernel Images ?
    Le mode Docker prend en charge Linux, macOS et Windows (nécessite Docker Desktop). Le mode unikraft prend principalement en charge Linux.
  2. Comment assurer la sécurité de l'environnement de mon bac à sable ?
    Les instances du navigateur s'exécutent dans un conteneur Docker isolé ou unikernel, complètement séparé du système hôte, ce qui réduit les risques de sécurité.
  3. L'agent anthropique est-il nécessaire ?
    Non, le compte Anthropic n'est pas nécessaire pour les fonctionnalités du navigateur de base. La fonctionnalité Proxy nécessite une clé API.
  4. Quel est le temps de latence du démarrage à froid ?
    Le mode Unikernel démarre à froid en moins de 20 millisecondes, le mode Docker est un peu plus lent mais reste efficace.
  5. Comment puis-je participer à l'élaboration d'un projet ?
    consultation CONTRIBUTING.mdSi vous n'êtes pas sûr de ce qu'il faut faire, soumettez une demande d'extraction ou soulevez un problème sur GitHub.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...