Hoy vamos a aprender a instalar OpenClaw en un sistema Docker mediante Docker Compose y dejarlo de forma aislada.

Primero instalamos Docker.
Una vez instalado debemos actualizar el docker compose:
# Añadir repositorio oficial de Docker curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Actualizar e instalar sudo apt update sudo apt install docker-compose-plugin
Una vez instalado, vamos a crear nuestro docker compose:
services:
openclaw-gateway:
image: ghcr.io/openclaw/openclaw:latest
container_name: openclaw-gateway
restart: unless-stopped
ports:
- "127.0.0.1:18789:18789"
environment:
- OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
volumes:
- ./config/openclaw/config:/home/node/.openclaw
- ./config/openclaw/workspace:/home/node/.openclaw/workspace
healthcheck:
test: ["CMD", "curl", "-fsS", "http://127.0.0.1:18789/healthz"]
interval: 30s
timeout: 10s
retries: 3
openclaw-cli:
image: ghcr.io/openclaw/openclaw:latest
container_name: openclaw-cli
network_mode: "service:openclaw-gateway"
entrypoint: ["node", "dist/index.js"]
volumes:
- ./config/openclaw/config:/home/node/.openclaw
profiles:
- cli
cap_drop:
- NET_RAW
- NET_ADMIN
security_opt:
- no-new-privileges:true
Y ahora creamos nuestro .env
OPENCLAW_GATEWAY_TOKEN=
Añadimos un token aleatorio, por ejemplo con este comando puedes generar uno:
openssl rand -hex 32
Si se sube a git, creamos este .gitignore
.env config
Onboarding inicial (solo la primera vez)
docker compose run --rm --no-deps --entrypoint node openclaw-gateway \ dist/index.js onboard --mode local --no-install-daemon docker compose run --rm --no-deps --entrypoint node openclaw-gateway \ dist/index.js config set gateway.bind lan
Arrancamos el gateway
docker compose up -d
Para abrir la interfaz:
http://127.0.0.1:18789
E introducir el token que se ha indicado en el .env
Algunos comandos útiles:
# Ver logs en tiempo real docker compose logs -f openclaw-gateway # Parar la gateway docker compose down # Reiniciar docker compose restart openclaw-gateway # Comprobar estado de salud curl -fsS http://127.0.0.1:18789/healthz # Usar el CLI docker compose run --rm openclaw-cli dashboard --no-open docker compose run --rm openclaw-cli channels login
Añadir canales de mensajería
# WhatsApp (escanea QR) docker compose run --rm openclaw-cli channels login # Telegram docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>" # Discord docker compose run --rm openclaw-cli channels add --channel discord --token "<token>"
Actualizar a última versión.
docker compose pull docker compose up -d
Referencias:
– Documentación oficial de OpenClaw (https://docs.openclaw.ai)
– Instalación con Docker (https://docs.openclaw.ai/es/install/docker)
– GitHub de OpenClaw (https://github.com/openclaw/openclaw)

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.