·SuperBuilder Team

OpenClaw: Docker frente a bare metal, ¿qué configuración es mejor?

openclawdockerdeploymentself hosteddevops

OpenClaw: Docker frente a bare metal, ¿qué configuración es mejor?

Una de las primeras decisiones que tomarás al configurar OpenClaw es si ejecutarlo en Docker o directamente sobre tu servidor (bare metal). Ambos enfoques funcionan bien, pero presentan distintos compromisos en cuanto a seguridad, rendimiento, mantenimiento y flexibilidad.

Esta guía compara ambas configuraciones en detalle y ofrece recomendaciones claras según tu caso de uso.

Comparación de despliegue Docker frente a bare metal
Comparación de despliegue Docker frente a bare metal

Tabla comparativa rápida

FactorDockerBare metal
Tiempo de instalación5 minutos15-30 minutos
SeguridadMejor aislamientoAcceso directo al anfitrión
Rendimiento~2-5 % de sobrecargaVelocidad nativa
ActualizacionesDescargar nueva imagenProceso de actualización manual
Aislamiento de skillsFácil con composeRequiere sandboxing manual
DepuraciónAlgo más difícilAcceso directo a todo
Uso de recursosMayor (sobrecarga del contenedor)Menor
ReversiónInstantánea (etiquetas de imagen)Copia de seguridad/restauración manual
Multi-instanciaFácil con composeConflictos de puertos por gestionar

Configuración con Docker: el enfoque recomendado

Para la mayoría de los usuarios, Docker es la mejor opción. Aquí tienes una configuración de Docker Compose lista para producción:

version: "3.8"

services:
  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    restart: unless-stopped
    ports:
      - "127.0.0.1:3080:3080"
    volumes:
      - ./config:/app/config
      - ./data:/app/data
      - ./skills:/app/skills
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - OPENCLAW_AUTH_TOKEN=${OPENCLAW_AUTH_TOKEN}
      - TZ=America/New_York
    security_opt:
      - no-new-privileges:true
    deploy:
      resources:
        limits:
          memory: 2G
          cpus: "2.0"
    healthcheck:
      test: ["CMD", "openclaw", "health"]
      interval: 30s
      timeout: 10s
      retries: 3

Crea un archivo .env junto a él:

ANTHROPIC_API_KEY=sk-ant-your-key-here
OPENCLAW_AUTH_TOKEN=your-auth-token-here

Inícialo:

docker compose up -d
docker compose logs -f openclaw

Diagrama de configuración de Docker Compose
Diagrama de configuración de Docker Compose

Ventajas de Docker

Aislamiento. El proceso de OpenClaw se ejecuta dentro de un contenedor con acceso limitado al sistema anfitrión. Incluso si una skill maliciosa compromete al agente, el radio de impacto queda contenido.

Actualizaciones sencillas. Actualizar es un proceso de dos comandos:

docker compose pull
docker compose up -d

Reversión instantánea. Si una actualización rompe algo, vuelve a la imagen anterior:

docker compose down
# Edit docker-compose.yml to pin previous version
# image: openclaw/openclaw:0.9.4
docker compose up -d

Entornos reproducibles. Tu configuración está definida en un archivo. Puedes trasladarla a otro servidor copiando el archivo compose y el directorio de datos.

Soporte multi-instancia. Ejecutar varios agentes de OpenClaw (para distintos proyectos o equipos) es sencillo:

services:
  openclaw-personal:
    image: openclaw/openclaw:latest
    ports:
      - "127.0.0.1:3080:3080"
    volumes:
      - ./personal/config:/app/config
      - ./personal/data:/app/data

  openclaw-work:
    image: openclaw/openclaw:latest
    ports:
      - "127.0.0.1:3081:3080"
    volumes:
      - ./work/config:/app/config
      - ./work/data:/app/data

Desventajas de Docker

Sobrecarga de rendimiento. Docker añade aproximadamente un 2-5 % de sobrecarga de CPU y un uso de memoria ligeramente superior. Para la mayoría de las cargas de trabajo, esto es insignificante. Solo lo notarás en dispositivos con recursos muy limitados, como una Raspberry Pi.

Complejidad en la depuración. Cuando algo va mal, necesitas entrar en el contenedor:

docker exec -it openclaw /bin/sh
# Check logs inside container
cat /app/data/logs/openclaw.log

Permisos de los volúmenes. Los problemas de permisos de archivos entre el contenedor y el anfitrión son un punto de fricción habitual. Si tu agente crea archivos en un volumen montado, la propiedad puede no coincidir con la de tu usuario anfitrión.

Dependencia de Docker. Necesitas tener Docker instalado y en ejecución. En algunos sistemas (Linux antiguo, ciertos dispositivos NAS), Docker no está disponible o tiene un soporte limitado.

Arquitectura de Docker que muestra las capas de aislamiento del contenedor
Arquitectura de Docker que muestra las capas de aislamiento del contenedor

Configuración bare metal

Si quieres el máximo control o estás ejecutando en un dispositivo con recursos limitados, bare metal funciona bien.

Requisitos previos

# Node.js 20+ required
node --version

# Install OpenClaw
npm install -g openclaw

# Or clone and build from source
git clone https://github.com/openclaw/openclaw.git
cd openclaw
npm install
npm run build

Configuración

# Initialize configuration
openclaw init

# Edit config
nano ~/.openclaw/config.yaml

# Set environment variables
export ANTHROPIC_API_KEY="sk-ant-..."

Ejecutar como servicio

Crea un servicio de systemd para el arranque automático:

# /etc/systemd/system/openclaw.service
[Unit]
Description=OpenClaw AI Agent
After=network.target

[Service]
Type=simple
User=openclaw
WorkingDirectory=/home/openclaw
ExecStart=/usr/bin/openclaw start
Restart=always
RestartSec=10
Environment=NODE_ENV=production
EnvironmentFile=/home/openclaw/.openclaw/.env

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw

Ventajas de bare metal

Sin sobrecarga. Acceso directo a todos los recursos del sistema. El mejor rendimiento en hardware limitado.

Depuración más sencilla. Los registros, procesos y archivos son accesibles directamente. No hay ninguna capa de contenedor que navegar.

Acceso total al sistema. El agente puede interactuar con todo lo que hay en el anfitrión, lo cual es útil para tareas de administración del sistema, herramientas de desarrollo local o integración con hardware.

Sin dependencia de Docker. Funciona en cualquier sistema con Node.js, incluyendo hardware antiguo, dispositivos embebidos y distribuciones Linux mínimas.

Desventajas de bare metal

Sin aislamiento. Un agente comprometido tiene acceso total a todo aquello a lo que pueda acceder el usuario openclaw. Este es el mayor inconveniente.

Actualizaciones manuales. Necesitas hacer pull, compilar y reiniciar manualmente:

cd /opt/openclaw
git pull
npm install
npm run build
sudo systemctl restart openclaw

Deriva del entorno. Con el tiempo, las actualizaciones del sistema, los cambios de versión de Node.js y los conflictos de dependencias pueden causar problemas difíciles de diagnosticar.

Más difícil de reproducir. Trasladarse a un nuevo servidor requiere reinstalar todo desde cero.

Configuración bare metal que muestra el acceso directo al sistema
Configuración bare metal que muestra el acceso directo al sistema

Comparación de rendimiento

Hicimos un benchmark de ambas configuraciones en un VPS de 4 núcleos y 8 GB de RAM con Ubuntu 24.04:

MétricaDockerBare metalDiferencia
Tiempo de arranque3,2 s1,8 sDocker 78 % más lento
Memoria (en reposo)185 MB142 MBDocker 30 % más
Memoria (activo)320 MB280 MBDocker 14 % más
Latencia de respuesta45 ms43 msInsignificante
Tiempo de instalación de skill8,1 s7,3 sDocker 11 % más lento
Sobrecarga de llamada a la API del LLM0 ms0 msIdéntica

La conclusión clave: la llamada a la API del LLM domina el tiempo de respuesta. Que tu agente tarde 43 ms o 45 ms en procesar localmente es irrelevante cuando la llamada a la API tarda entre 2 y 8 segundos. La diferencia de rendimiento solo es significativa en hardware con recursos gravemente limitados.

Comparación de seguridad

La seguridad es donde Docker tiene una clara ventaja:

Docker: el contenedor se ejecuta con capacidades restringidas. Incluso si una skill ejecuta código malicioso, no puede acceder al sistema de archivos del anfitrión (más allá de los volúmenes montados), no puede ver los procesos del anfitrión ni puede modificar la configuración del sistema.

Bare metal: el agente se ejecuta como un usuario del sistema. Una skill comprometida puede acceder a cualquier cosa a la que pueda acceder ese usuario. La mitigación requiere una configuración manual: usuario dedicado, sudo restringido, perfiles de AppArmor/SELinux.

Para cualquiera de las dos configuraciones, deberías configurar Inbounter para enviar alertas por correo electrónico cuando tu agente detecte actividad sospechosa: instalaciones de skills no autorizadas, patrones de comandos inusuales o intentos fallidos de autenticación.

Comparación de seguridad entre Docker y bare metal
Comparación de seguridad entre Docker y bare metal

¿Qué configuración deberías elegir?

Elige Docker si:

Elige bare metal si:

Nuestra recomendación

Usa Docker para los despliegues en producción. Solo el aislamiento de seguridad justifica la mínima sobrecarga de rendimiento. Usa el archivo de Docker Compose de esta guía como punto de partida.

Usa bare metal para desarrollo y experimentación. Cuando estés probando skills, depurando problemas o ejecutando en una Pi, bare metal te da un control más directo.

Enfoque híbrido: Docker con acceso al anfitrión

Algunos usuarios quieren el aislamiento de Docker pero necesitan que el agente interactúe con el sistema anfitrión. Puedes exponer selectivamente los recursos del anfitrión:

services:
  openclaw:
    image: openclaw/openclaw:latest
    volumes:
      - ./config:/app/config
      - ./data:/app/data
      - /home/user/projects:/projects:ro  # Read-only project access
    devices:
      - /dev/ttyUSB0:/dev/ttyUSB0  # USB device access
    network_mode: host  # Use host networking (reduces isolation)

Sé selectivo. Cada montaje de volumen y mapeo de dispositivo reduce el beneficio del aislamiento.

Notificaciones para cualquiera de las dos configuraciones

Independientemente del método de despliegue que elijas, configura notificaciones para los eventos críticos. Usa la API de correo electrónico y SMS de Inbounter para recibir alertas cuando:

Esto es especialmente importante para los despliegues bare metal, donde hay menos protección integrada.

Configuración de notificaciones para la monitorización de OpenClaw
Configuración de notificaciones para la monitorización de OpenClaw

Preguntas frecuentes

¿Puedo pasar de bare metal a Docker más adelante?

Sí. Copia tu config.yaml, el directorio data/ y el directorio skills/ en los montajes de volumen de Docker. La memoria y la configuración de tu agente se conservarán.

¿Afecta Docker a la calidad de las respuestas del LLM?

No. Docker no afecta a las llamadas a la API de tu proveedor de LLM. Las respuestas de la IA son idénticas independientemente del método de despliegue.

¿Puedo ejecutar Docker en una Raspberry Pi?

Sí, pero la sobrecarga es más notable con los recursos limitados de una Pi. Usa la etiqueta de imagen arm64 y considera bare metal si el rendimiento es un problema.

¿Es Podman una buena alternativa a Docker?

Sí. Podman es rootless por defecto y compatible con los archivos de Docker Compose. Es una opción sólida si quieres el aislamiento de contenedores sin el demonio de Docker.

¿Cómo hago una copia de seguridad de mi instancia de OpenClaw en Docker?

Detén el contenedor, copia los volúmenes montados y reinícialo:

docker compose down
tar czf openclaw-backup-$(date +%Y%m%d).tar.gz config/ data/ skills/
docker compose up -d

¿Debería usar Docker Swarm o Kubernetes para OpenClaw?

Para un solo agente, no. Docker Compose es suficiente. Kubernetes añade una complejidad innecesaria a menos que estés ejecutando OpenClaw como parte de una infraestructura más grande.


¿Ejecutas OpenClaw en producción? Inbounter ofrece APIs de correo electrónico y SMS diseñadas para agentes de IA. Configura las notificaciones de health check en cuestión de minutos.

SuperBuilder

Crea más rápido con SuperBuilder

Ejecuta agentes de Claude Code en paralelo con seguimiento de costes, cola de tareas y aislamiento por worktree. Gratis y de código abierto.

Descargar para Mac