Instalar OpenClaw con Docker: paso a paso y configuración jour
Esta guía muestra cómo instalar OpenClaw con Docker Compose en un PC o un VPS: obtención del repositorio oficial, onboarding, primera conexión a la interfaz de control y, después, actualización y desinstalación sin dejar ningún rastro. Los comandos se basan en la documentación del proyecto, que debes releer antes de pegarlos porque cambia rápidamente; esta guía no contiene pruebas propias ni indica cuánto dura la instalación. Una regla se aplica en todas las etapas: la pasarela de OpenClaw nunca debe ser accesible desde Internet.
#Instalar OpenClaw: ¿script oficial o Docker?
El proyecto documenta dos formas de instalar OpenClaw. La primera utiliza un script que instala el comando openclaw directamente en el sistema. La segunda ejecuta la puerta de enlace (el proceso central que conecta tus servicios de mensajería con el modelo) dentro de un contenedor Docker. Ambas dan como resultado el mismo software y el mismo asistente de configuración, llamado onboarding.
- Script oficial
- La vía más rápida en un equipo personal con macOS, Linux o WSL2. El script instala el comando openclaw y Node.js si es necesario; después, la configuración inicial registra la pasarela como servicio de tu sesión.
- Docker Compose
- La pasarela se ejecuta en un contenedor y en el sistema anfitrión solo está instalado Docker. Es la opción práctica en un VPS o para poder eliminarlo todo de una vez. La documentación la presenta como opcional.
- Lo que Docker no cambia
- El contenedor mantiene acceso completo a la carpeta de configuración y al espacio de trabajo montados desde el host, así como a la red. Es una barrera útil, no una caja fuerte.
El resto de esta guía sigue el método con Docker e incluye un recordatorio del comando equivalente para el método con script en los pasos de actualización y desinstalación. Si aún tienes dudas sobre la utilidad de la herramienta en sí, nuestra página «OpenClaw: ¿qué es?» aborda esa cuestión; aquí nos centramos en la instalación.
#Prerrequisitos
Agentes que actúan en tu máquina: Cline agéntico, MCP, n8n + Ollama, automatizaciones locales.
- Espacio en línea de por vida
- PDF + archivos
- Reembolsado 30 j
La propia pasarela consume poco: retransmite mensajes y llama a un modelo. Los requisitos que se indican a continuación se refieren principalmente a Docker y a la construcción de la imagen.
- Docker y Compose v2
- Docker Desktop en macOS y Windows (con WSL2), o Docker Engine junto con el plugin Compose en Linux. El comando se escribe docker compose, con un espacio: el binario anterior docker-compose en versión 1 no es compatible.
- Git
- Para clonar el repositorio oficial, que contiene el Dockerfile, el archivo docker-compose.yml y el script de instalación
- Memoria
- La documentación exige al menos 2 GB de RAM para construir la imagen. En un host de 1 GB, la compilación puede ser interrumpida por el sistema por falta de memoria (código de salida 137). La imagen preconstruida, que se presenta más abajo, evita este paso.
- Disco
- Espacio para imágenes Docker y los logs. La documentación no da un número: monitorea el espacio con docker system df.
- Un modelo
- Una clave de API de un proveedor en línea, con un límite de gasto, o un modelo local. La conexión de un modelo local es un tema aparte que esta guía no trata.
- En un VPS
- Acceso SSH mediante clave y el firewall del proveedor configurado para permitir solo SSH. Ningún otro puerto necesita estar abierto, como se verá.
En Windows, trabaja desde un terminal WSL2: el script de instalación es un script de shell y, de todos modos, la documentación dirige a los usuarios de Windows a WSL2. Sea cual sea la máquina, evita la que contiene tus documentos personales y tus contraseñas: un agente capaz de ejecutar comandos debe instalarse en una máquina dedicada, una máquina virtual o un servidor alquilado.
#Instalar OpenClaw con Docker Compose, paso a paso
La instalación con Docker se basa en un script proporcionado en el repositorio. Este script ejecuta sucesivamente la preparación de la imagen, la configuración inicial y el arranque de la pasarela. Los cuatro pasos siguientes siguen este orden.
#1. Clonar el repositorio oficial
Verifica la dirección carácter por carácter: es la organización openclaw en GitHub, no un repositorio con un nombre parecido. Según la documentación que conocemos, el script de instalación de Docker se llama docker-setup.sh y está en la raíz del repositorio. El proyecto reorganiza sus archivos con frecuencia y las versiones recientes pueden situar el script en scripts/docker/: el siguiente comando muestra cuál de las dos ubicaciones existe en tu sistema.
#2. Elegir entre imagen preconstruida y construcción local
Por defecto, el script construye la imagen en tu máquina a partir del Dockerfile y la nombra openclaw:local. Es la vía más transparente, ya que compilas el código que acabas de clonar, pero requiere memoria y tiempo de cálculo. La alternativa consiste en descargar la imagen publicada por el proyecto en el registro de GitHub, especificando la variable OPENCLAW_IMAGE antes de lanzar el script.
La etiqueta latest sigue la última versión publicada. En un servidor, es mejor reemplazarla por un número de versión preciso, tomado de la página de releases del repositorio: así tú decides cuándo actualizar y sabes a qué versión volver en caso de problemas.
#3. Ejecutar el script de instalación
Según la documentación, este script realiza cinco cosas consecutivas:
- Imagen
- Construye la imagen localmente o la descarga si OPENCLAW_IMAGE está definido.
- Onboarding
- Lanza el asistente de configuración en un contenedor temporal.
- Token
- Genera el token de acceso de la pasarela y lo escribe en un archivo .env en la raíz del repositorio.
- Inicio
- Inicia la puerta de enlace con Docker Compose, bajo el nombre de servicio openclaw-gateway.
- Datos
- Coloca la configuración y el espacio de trabajo en el host, en ~/.openclaw y ~/.openclaw/workspace. Estos directorios sobreviven a la eliminación del contenedor.
#4. Responder a las preguntas de la configuración inicial
El asistente hace preguntas sobre el modelo, los servicios de mensajería y la pasarela. Para esta última parte, el script muestra las respuestas esperadas en un contenedor. Difieren de las de una instalación clásica, y la primera merece una explicación.
- Gateway bind: lan
- Dentro del contenedor, la puerta de enlace debe escuchar en la interfaz de la red de Docker; de lo contrario, no se puede acceder a ella a través del puerto publicado en el host. Este ajuste no determina qué es visible desde el exterior: eso se controla en el host; consulta la sección VPS.
- Autenticación de gateway: token
- El acceso a la interfaz y a la API de la pasarela requiere un token.
- Gateway token
- Usa el token que acaba de mostrar el script para que coincida con el del archivo .env.
- Tailscale exposure : Off
- Sin exposición automática. El acceso remoto se decide más tarde, con conocimiento de causa.
- Install Gateway daemon : No
- En esta configuración, es Docker Compose el que reinicia el contenedor, no un servicio del sistema.
En cuanto al modelo, proporciona una clave de API con un límite de presupuesto en lugar de tu clave principal. En cuanto a los servicios de mensajería, puedes saltarte este paso y volver a él una vez verificada la pasarela. Recuerda la regla de conversión: cualquier comando de la documentación que empiece por openclaw se ejecuta aquí anteponiendo docker compose run --rm openclaw-cli.
#Comprobar que la pasarela esté funcionando
Antes de conectar cualquier otra cosa, asegúrate de que el contenedor esté en marcha y de que sus registros no indiquen errores.
Abre después la interfaz de control en el navegador de la misma máquina y pega el token en sus ajustes. Si has perdido el enlace, el comando dashboard lo vuelve a mostrar sin intentar abrir un navegador.
Dos controles integrados completan la verificación. El primero diagnostica la instalación y la configuración; el segundo revisa los ajustes peligrosos. Vuelve a ejecutarlos después de cada cambio de configuración.
Último paso: protege el archivo .env. Contiene el token de la puerta de enlace, y quien tenga ese token controla al agente y, por tanto, todo aquello a lo que el agente tiene acceso. Un chmod 600 .env limita su lectura a tu cuenta. No lo copies en un repositorio Git ni en una captura de pantalla.
#OpenClaw en un VPS: no exponer la puerta de enlace
En un PC detrás de un router doméstico, un puerto publicado por Docker permanece en la red local. En un VPS, la máquina tiene una dirección pública: un puerto publicado sin especificar una dirección es accesible desde todo Internet. A principios de 2026, unos investigadores identificaron miles de pasarelas OpenClaw accesibles de esta manera. El token protege el acceso, pero una sola vulnerabilidad basta para eludir esa protección: la vulnerabilidad CVE-2026-25253, corregida a finales de enero de 2026, permitía precisamente robarlo. La estrategia adecuada consiste en no exponer nada en absoluto.
Si la respuesta comienza con 0.0.0.0, el puerto está publicado en todas las interfaces. Se combinan tres capas de protección, desde la más externa hasta la más cercana al contenedor.
- Cortafuegos del proveedor
- El filtrado propuesto en la consola del proveedor actúa antes de la máquina, por lo tanto antes de Docker. Solo permite SSH.
- Publicación en 127.0.0.1
- Pide a Docker que publique el puerto solo en la dirección local del host, con el archivo siguiente.
- Acceso por túnel
- Accede a la interfaz de control a través de un túnel SSH o una VPN, nunca mediante una dirección pública.
Este archivo es un ejemplo que proporcionamos nosotros, no un extracto de la documentación de OpenClaw: compara el nombre del servicio y la lista de puertos con los del docker-compose.yml de tu versión antes de usarlo. La etiqueta !override reemplaza la lista de puertos en lugar de añadir elementos a ella; requiere Docker Compose 2.24.4 o una versión más reciente. Coloca el archivo junto a docker-compose.yml, vuelve a crear el contenedor con docker compose up -d openclaw-gateway y ejecuta de nuevo la comprobación: ahora debe devolver 127.0.0.1:18789.
Mientras este túnel esté abierto, la dirección http://127.0.0.1:18789/ de tu ordenador lleva a la pasarela del servidor. Los servicios de mensajería, por su parte, no necesitan ningún puerto de entrada en su modo habitual: para WhatsApp, Telegram o Discord, es la pasarela la que abre conexiones de salida. Por tanto, no hay ninguna razón para publicar la interfaz de control bajo un nombre de dominio. El razonamiento es el mismo que para un servidor de modelos y se explica en detalle en nuestra guía sobre cómo proteger un servidor Ollama.
#Actualizar OpenClaw
El proyecto publica versiones a un ritmo elevado, y algunas corrigen vulnerabilidades. Dejar una instalación sin actualizar durante meses es un riesgo, no un ahorro de tiempo. Con Docker, actualizar consiste en reemplazar la imagen y luego recrear el contenedor; tus datos, en ~/.openclaw, permanecen intactos.
- 01Hacer una copia de seguridad del directorio de datosArchiva ~/.openclaw antes de cualquier actualización. Una nueva versión puede migrar la configuración, y volver al estado anterior solo es fiable si conservas una copia de ese estado.
- 02Obtener la nueva versiónActualiza el repositorio con git pull para obtener el Dockerfile y el archivo Compose actuales, luego reconstruye la imagen local o descarga la imagen publicada, según la opción elegida en la instalación.
- 03Recrear el contenedorReinicia el servicio openclaw-gateway. Docker Compose reemplaza el contenedor en cuanto detecta una imagen diferente.
- 04ComprobarInicia doctor, lee las últimas líneas de los logs y envía un mensaje de prueba desde tu mensajería.
La variante con una imagen publicada presupone que la línea OPENCLAW_IMAGE está en el archivo .env; el script la añade si la variable estaba definida durante la instalación. Si has fijado un número de versión, modifica primero esa línea. Para volver atrás, restablece el número anterior, vuelve a crear el contenedor y, si la configuración se ha migrado mientras tanto, restaura la copia de seguridad.
Con el método basado en un script, la actualización se realiza mediante el comando integrado, seguido del mismo diagnóstico.
#Desinstalar OpenClaw correctamente
Una desinstalación completa elimina tres cosas: los contenedores y las imágenes, los datos en el disco y los accesos que le habías confiado al asistente. La tercera es la que suele olvidarse.
La carpeta ~/.openclaw contiene la configuración, las claves de API, las sesiones de mensajería y la memoria del asistente. Su eliminación es irreversible: guarda una copia de seguridad si piensas volver a usarlo algún día o si quieres releer lo que el asistente había anotado. El repositorio clonado contiene por su parte el archivo .env y su token.
- Claves de API
- Revoca la clave que has confiado a OpenClaw en el servicio del proveedor del modelo. Borrar el archivo local no la invalida.
- Bot de Telegram o Discord
- Revoca el token del bot o elimina el bot desde la herramienta del servicio (BotFather para Telegram, portal de desarrolladores para Discord).
- En la aplicación, abre la lista de dispositivos conectados y desconecta el que corresponde a la pasarela.
- Acceso a red
- Elimina la regla de cortafuegos, el túnel o la máquina de la VPN creados para este propósito. Si el VPS se alquiló únicamente para este uso, cancela el servicio del servidor.
Con el método de instalación mediante script, el comando de desinstalación integrado elimina el servicio y ofrece la opción de borrar los datos; después queda por eliminar el propio comando.
#Solución de problemas: los bloqueos más comunes
- « unauthorized » o « pairing required (1008) »
- El navegador aún no ha sido aprobado por la pasarela. Vuelve a mostrar el enlace de acceso, luego lista y aprueba el dispositivo con los comandos a continuación. Este caso es frecuente en Docker y detrás de un túnel, porque la conexión no llega desde la dirección local del contenedor.
- Construcción interrumpida, código 137
- El sistema ha abortado la compilación por falta de memoria. Cambia a la imagen publicada con OPENCLAW_IMAGE o usa una máquina de al menos 2 GB de RAM.
- Permiso denegado en /home/node/.openclaw
- La imagen se ejecuta con el usuario node, cuyo identificador es 1000. Los directorios montados desde el host deben pertenecerle: sudo chown -R 1000:1000 ~/.openclaw.
- Puerto 18789 ya en uso
- Otro servicio o una instalación anterior de OpenClaw ocupa el puerto. Detén ese servicio o esa instalación, o cambia OPENCLAW_GATEWAY_PORT en el archivo .env antes de recrear el contenedor.
- docker compose introuvable
- Tienes el binario docker-compose antiguo o no tienes el plugin Compose. Instala el plugin Compose v2 de tu distribución.
- No se puede conectar con el modelo local
- Dentro de un contenedor, localhost se refiere al contenedor, no al host. Por tanto, una instancia de Ollama que escucha en http://localhost:11434 en el host no es accesible tal cual desde la pasarela. Este ajuste forma parte de la conexión del modelo y queda fuera del alcance de esta guía.
Cuando nada de esto coincide, los registros del servicio siguen siendo el mejor punto de partida, seguidos de la orden doctor. Antes de buscar una solución en otro lugar, revisa las fechas de las respuestas que encuentres: aquellas que mencionan Clawdbot o Moltbot describen órdenes antiguas.
#Fuentes oficiales para tener a mano
Esta guía no se basa en ninguna prueba propia: no contiene duraciones, mediciones ni comparaciones numéricas. Los comandos reproducen la documentación del proyecto, que cambia de una versión a otra: nombre del script, variables y pasos de la configuración inicial. En caso de discrepancia entre esta página y la documentación, prevalece la documentación.
#Para ir más allá
La instalación es solo la primera mitad del trabajo: un agente se configura, se supervisa y se compara. Estas guías del sitio amplían los conceptos utilizados aquí.
- OpenClaw: qué es y si conviene instalarlo
- El funcionamiento de la pasarela, los usos y los riesgos, para decidir antes de instalar. https://quelllm.fr/guide/openclaw-c-est-quoi
- Proteger un servidor Ollama
- Firewall, escucha local y acceso remoto: la misma lógica de exposición mínima, aplicada al servidor de modelos. https://quelllm.fr/guide/securiser-serveur-ollama
- Desplegar un LLM con Docker Compose en producción
- Archivos Compose, reinicio, registros y respaldos para una pila que funciona continuamente. https://quelllm.fr/guide/deployer-llm-docker-compose-production
- Instalar Ollama con Docker
- Para ejecutar el servidor de modelos dentro de un contenedor, en la misma máquina o en otra. https://quelllm.fr/guide/ollama-docker-installation-guide
- Agent Zero con Ollama en Docker
- Otro agente autoalojado distribuido en un contenedor, para comparar los enfoques. https://quelllm.fr/guide/agent-zero-ollama-docker
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.