Pourquoi Docker ?
Exécuter OpenClaw dans Docker offre trois avantages clés par rapport à une installation sur machine nue :
- 1.Isolation de sécurité : L'agent fonctionne à l'intérieur d'un conteneur avec un accès limité à votre système hôte. Si une compétence malveillante ou une injection de prompt tente d'accéder à vos fichiers, la frontière du conteneur limite le rayon d'impact.
- 2.Reproductibilité : La même image Docker fonctionne de manière identique sur n'importe quelle machine — votre ordinateur portable, un VPS ou un Raspberry Pi.
- 3.Nettoyage facile : Vous voulez repartir de zéro ? Supprimez le conteneur et créez-en un nouveau. Aucun fichier résiduel, aucune installation Node.js cassée.
Prérequis
- •Docker Desktop (macOS/Windows) ou Docker Engine (Linux)
- •Docker Compose v2 (inclus avec Docker Desktop)
- •Au moins 2 Go de RAM disponibles pour le conteneur
- •Une clé API IA (Anthropic, OpenAI ou autre fournisseur pris en charge)
Démarrage rapide
Option A : Docker Compose officiel (recommandé)
Clonez le dépôt OpenClaw et utilisez la configuration Docker intégrée :
git clone https://github.com/openclaw/openclaw.git
cd openclaw
Exécutez le script de configuration, qui crée les répertoires et la configuration nécessaires :
bash docker-setup.sh
- •
~/.openclaw/— configuration, SOUL.md, clés API - •
~/openclaw/workspace/— fichiers accessibles à l'agent
Exécutez l'assistant de configuration à l'intérieur du conteneur :
docker compose run --rm openclaw-cli onboard
Suivez les instructions pour configurer votre clé API et connecter une plateforme de messagerie. Puis démarrez la passerelle :
docker compose up -d openclaw-gateway
Votre agent fonctionne désormais en arrière-plan.
Option B : Image pré-construite
Si vous ne souhaitez pas cloner le dépôt, utilisez l'image officielle pré-construite :
docker run -d \
--name openclaw \
--restart unless-stopped \
-v ~/.openclaw:/root/.openclaw \
-v ~/openclaw/workspace:/root/workspace \
-p 3000:3000 \
ghcr.io/openclaw/openclaw:latest
Référence Docker Compose
Voici un docker-compose.yml annoté pour un usage en production :
version: "3.8"
services:
openclaw-gateway:
image: ghcr.io/openclaw/openclaw:latest
container_name: openclaw
restart: unless-stopped
ports:
- "3000:3000" # Web UI
volumes:
- ~/.openclaw:/root/.openclaw # Config and data
- ~/openclaw/workspace:/root/workspace # Agent workspace
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- TZ=Asia/Shanghai # Set your timezone
mem_limit: 2g # Prevent runaway memory usage
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
Créez un fichier .env dans le même répertoire avec vos clés API :
ANTHROPIC_API_KEY=sk-ant-xxxxx
OPENAI_API_KEY=sk-xxxxx
Variables d'environnement
| Variable | Requise | Description |
|---|---|---|
ANTHROPIC_API_KEY | Oui* | Clé API Claude |
OPENAI_API_KEY | Non | Clé API GPT (si vous utilisez OpenAI) |
OPENCLAW_PORT | Non | Port de l'interface web (par défaut : 3000) |
OPENCLAW_HOME | Non | Répertoire de données dans le conteneur |
TZ | Non | Fuseau horaire pour les tâches planifiées |
*Au moins une clé de fournisseur IA est requise.
Gérer votre conteneur
# View logs
docker logs -f openclaw
# Stop the agent
docker compose stop
# Start the agent
docker compose up -d
# Restart after config changes
docker compose restart
# Update to latest version
docker compose pull
docker compose up -d
# Enter the container shell
docker exec -it openclaw bash
# Run CLI commands inside container
docker exec openclaw openclaw skill list
docker exec openclaw openclaw status
Renforcement de la sécurité
Limiter l'accès au système de fichiers
Montez uniquement les répertoires dont votre agent a réellement besoin. Évitez de monter votre répertoire personnel entier :
volumes:
- ~/.openclaw:/root/.openclaw:rw # Config (read-write)
- ~/documents:/root/docs:ro # Documents (read-only)
Isolation réseau
Si votre agent n'a pas besoin d'accéder aux services du réseau local, restreignez son réseau :
networks:
openclaw-net:
driver: bridge
internal: false # Set to true to block all external access
Système de fichiers racine en lecture seule
Pour une sécurité maximale, rendez le système de fichiers racine en lecture seule et n'autorisez les écritures que sur des chemins spécifiques :
read_only: true
tmpfs:
- /tmp
- /run
Mise à jour
OpenClaw publie fréquemment de nouvelles versions. Pour mettre à jour votre déploiement Docker :
docker compose pull # Pull latest image
docker compose up -d # Recreate container with new image
docker image prune -f # Clean up old images
Votre configuration et vos données persistent dans les volumes montés, les mises à jour sont donc non destructives.
Dépannage
Le conteneur plante immédiatement : Vérifiez les journaux avec docker logs openclaw. Causes courantes : clés API manquantes, mémoire insuffisante ou conflits de port.
Le code QR WhatsApp ne s'affiche pas : Lancez l'intégration en mode interactif : docker compose run --rm openclaw-cli onboard. Le code QR nécessite un terminal qui prend en charge le rendu.
Erreurs de permission sur les volumes montés : Assurez-vous que les répertoires hôtes existent et appartiennent à votre utilisateur : mkdir -p ~/.openclaw ~/openclaw/workspace.
Utilisation mémoire élevée : Définissez mem_limit: 2g dans docker-compose.yml pour empêcher le conteneur de consommer trop de RAM.
Pour plus de détails, consultez la documentation officielle Docker et le docker-compose.yml dans le dépôt.