OpenClaw en Docker: compose listo para copiar

2026-09-25 · actualizado 2026-09-25

📌 Guía en revisión activa. El compose definitivo se congelará cuando termine el despliegue en el laboratorio. Mientras tanto: los patrones aquí son estándar Docker Compose y las variables concretas de OpenClaw están en la doc oficial.

Por qué Docker para OpenClaw

El compose del laboratorio

services:
  openclaw:
    image: ghcr.io/openclaw/openclaw:latest   # verifica la imagen oficial en la doc
    container_name: openclaw
    restart: unless-stopped
    env_file: .env
    volumes:
      - ./data:/data                          # estado, memoria y config persisten aquí
    ports:
      - "127.0.0.1:3000:3000"                 # solo localhost: el gateway NO se expone directo
    mem_limit: 2g
    cpus: 2.0
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

Los 4 detalles que importan

  1. 127.0.0.1: delante del puerto — sin eso Docker publica en 0.0.0.0 y tu Gateway queda expuesto a internet. Error clásico nº1.
  2. mem_limit + cpus — un agente IA puede desbocarse. Con límites, lo peor que pasa es que el contenedor se frena, no tu servidor.
  3. Volumen ./data — si no persistes el estado, cada docker compose down borra la memoria del agente.
  4. Rotación de logs (max-size) — los logs de un Gateway crecen sin freno; sin rotación te llenas el disco en semanas.

Antes de arrancar

# 1. Variables de entorno (claves de API, tokens de canales)
nano .env

# 2. Arrancar
docker compose up -d

# 3. Ver que vive
docker compose logs -f openclaw

Checklist de seguridad mínimo


Este compose se validará contra la instalación real del laboratorio. Si algo cambia, la tabla de cambios aparece aquí con fecha.