Table of Contents
Exécution sécurisée d’OpenClaw dans des sandbox Docker
L’exécution d’OpenClaw dans des sandbox Docker permet d’améliorer la sécurité et la fiabilité de l’exécution d’applications sensibles, en les isolant du système hôte et en limitant les risques de fuite de données ou d’attaques malveillantes. Dans cet article, nous allons découvrir comment exécuter OpenClaw de manière sécurisée dans des sandbox Docker, une nouvelle primitive dans l’écosystème Docker permettant d’exécuter des agents IA ou d’autres applications dans un environnement isolé et sécurisé.
Introduction aux sandbox Docker
Les sandbox Docker offrent une isolation forte et une expérience de développement pratique pour l’exécution d’applications sensibles. Ils permettent de définir une limite de sécurité solide avec un proxy réseau configurable pour dénier les connexions à des hôtes Internet arbitraires. Le proxy réseau injecte également automatiquement les clés API, comme ANTHROPIC_API_KEY ou OPENAI_API_KEY, pour que l’agent n’y ait pas accès et ne puisse pas les exposer.
Pour commencer, assurez-vous d’avoir Docker Desktop et que Docker Model Runner est activé (Settings → Docker Model Runner → Enable). Ensuite, vous pouvez créer et exécuter un sandbox Docker pour OpenClaw en utilisant les commandes suivantes :
docker model pull ai/gpt-oss:20B-UD-Q4_K_XL docker sandbox create --name openclaw -t olegselajev241/openclaw-dmr:latest shell docker sandbox network proxy openclaw --allow-host localhost docker sandbox run openclaw
Ces commandes créent un sandbox Docker nommé « openclaw » à partir de l’image olegselajev241/openclaw-dmr:latest, configurent le proxy réseau pour permettre à OpenClaw de communiquer avec le modèle local, et exécutent le sandbox.
Il est important de noter que le proxy réseau est configuré pour permettre à OpenClaw de communiquer avec le modèle local. Cela signifie que le modèle local doit être exécuté sur l’hôte et que le proxy réseau doit être configuré pour permettre à OpenClaw de communiquer avec lui.
Voici un exemple de configuration du proxy réseau pour permettre à OpenClaw de communiquer avec le modèle local :
docker sandbox network proxy openclaw --allow-host localhost
Cette commande configure le proxy réseau pour permettre à OpenClaw de communiquer avec le modèle local.
Exécution d’OpenClaw dans un sandbox Docker
Pour exécuter OpenClaw dans un sandbox Docker, vous devez utiliser l’image pré-construite olegselajev241/openclaw-dmr:latest. Cette image est basée sur le modèle de sandbox shell avec trois ajouts : Node.js 22, OpenClaw et un petit pont réseau.
Le pont réseau est nécessaire car Docker Model Runner s’exécute sur l’hôte et se lie à localhost:12434. Cependant, localhost à l’intérieur du sandbox signifie le sandbox lui-même, et non l’hôte. Le sandbox dispose d’un proxy HTTP, à host.docker.internal:3128, qui peut atteindre les services hôte, et nous autorisons à atteindre localhost avec la commande docker sandbox network proxy –allow-host localhost.
Le problème est que OpenClaw est Node.js, et Node.js ne respecte pas les variables d’environnement HTTP_PROXY. Nous avons donc écrit un script de pont d’environ 20 lignes que OpenClaw se connecte à 127.0.0.1:54321, qui transmet explicitement les requêtes via le proxy pour atteindre Docker Model Runner sur l’hôte.
~/start-openclaw.sh
Cette commande exécute le script de démarrage d’OpenClaw, qui découvre automatiquement les modèles disponibles dans Docker Model Runner et les liste.
Voici un exemple de sortie de la commande ~/start-openclaw.sh :
Liste des modèles disponibles : ai/gpt-oss:20B-UD-Q4_K_XL ai/qwen2.5:7B-Q4_K_M
Cela signifie que les modèles ai/gpt-oss:20B-UD-Q4_K_XL et ai/qwen2.5:7B-Q4_K_M sont disponibles pour être utilisés avec OpenClaw.
Voici un exemple de code pour utiliser un modèle spécifique avec OpenClaw :
const openclaw = require('openclaw');
const model = 'ai/qwen2.5:7B-Q4_K_M';
openclaw.useModel(model);
Ce code utilise le modèle ai/qwen2.5:7B-Q4_K_M avec OpenClaw.
Utilisation de modèles cloud avec OpenClaw
Les modèles cloud peuvent être utilisés avec OpenClaw dans un sandbox Docker. Les clés API sont injectées automatiquement par le proxy réseau, de sorte que les clés ne soient jamais exposées à l’intérieur du sandbox.
Pour utiliser des modèles cloud, vous devez configurer les paramètres d’OpenClaw pour utiliser des modèles cloud. Vous pouvez ensuite exécuter la commande suivante pour utiliser un modèle cloud spécifique :
~/start-openclaw.sh ai/qwen2.5:7B-Q4_K_M
Cette commande utilise le modèle cloud spécifié avec OpenClaw dans le sandbox Docker.
Voici un exemple de configuration des paramètres d’OpenClaw pour utiliser des modèles cloud :
{
"model": "ai/qwen2.5:7B-Q4_K_M",
"apiKey": "YOUR_API_KEY"
}
Cela configure OpenClaw pour utiliser le modèle cloud ai/qwen2.5:7B-Q4_K_M avec la clé API spécifiée.
| Modèle | Description | Commande |
|---|---|---|
| ai/gpt-oss:20B-UD-Q4_K_XL | Modèle local | docker model pull ai/gpt-oss:20B-UD-Q4_K_XL |
| ai/qwen2.5:7B-Q4_K_M | Modèle cloud | ~/start-openclaw.sh ai/qwen2.5:7B-Q4_K_M |
Avantages de l’exécution d’OpenClaw dans des sandbox Docker
L’exécution d’OpenClaw dans des sandbox Docker offre plusieurs avantages, notamment :
- Isolation forte : les sandbox Docker offrent une isolation forte entre les applications et le système hôte, ce qui réduit les risques de fuite de données ou d’attaques malveillantes.
- Expérience de développement pratique : les sandbox Docker offrent une expérience de développement pratique pour les applications sensibles, ce qui facilite le développement et le déploiement de ces applications.
- Proxy réseau configurable : le proxy réseau est configurable pour permettre à OpenClaw de communiquer avec le modèle local ou les modèles cloud, ce qui offre une grande flexibilité pour les applications.
Conclusion
L’exécution d’OpenClaw dans des sandbox Docker est une solution sécurisée et pratique pour les applications sensibles. Les sandbox Docker offrent une isolation forte, une expérience de développement pratique et un proxy réseau configurable, ce qui facilite le développement et le déploiement de ces applications. Les modèles cloud peuvent être utilisés avec OpenClaw dans un sandbox Docker, ce qui offre une grande flexibilité pour les applications.


