Skip to content
Subs -25% LAUNCH-SUB
Claws -25% LAUNCH-CLAWS

Docker Configuration

4 min read Configuration Last updated February 10, 2026

How Docker Is Used

Every ClawHosters instance runs OpenClaw inside a Docker container on a dedicated VPS. Docker provides isolation, resource limits, and consistent deployments across all instances.

You do not need to interact with Docker directly for normal usage. ClawHosters manages the container lifecycle automatically. This reference is for users who SSH into their instance for advanced configuration.

Container Setup

The OpenClaw container is defined by a docker-compose.yml file generated by ClawHosters during deployment.

Docker Image

text
ghcr.io/phioranex/openclaw-docker:latest

This is a community-maintained image that receives regular updates. The image is pre-pulled during snapshot creation, so deployment does not require downloading it.

Ports

Internal Port External Port Purpose
18789 8080 OpenClaw Gateway (web UI)
9090 9090 Metrics endpoint

The gateway is accessible at http://your-instance-ip:8080. Nginx on the host reverse-proxies this for HTTPS access.

Container Startup Command

bash
gateway --allow-unconfigured --bind lan

The --allow-unconfigured flag lets the gateway start even without an LLM configured. The --bind lan flag binds to the local network interface.

Resource Limits

Docker enforces memory limits based on your tier:

Tier Memory Limit Node.js Heap
Budget 1 GB 768 MB
Balanced 2 GB 1,536 MB
Pro 4 GB 3,072 MB

If the container exceeds the memory limit, Docker kills and restarts it automatically. The Node.js heap is set to roughly 75% of the Docker memory limit to leave room for other processes inside the container.

Volumes

The container uses a named Docker volume for persistent data:

Volume Mount Point Purpose
openclaw_data /root/.openclaw Configuration, chat history, knowledge base
playwright_browsers /opt/playwright-browsers Pre-installed Chromium for web automation

Data in these volumes survives container restarts and reboots. A rebuild replaces the container but preserves the host-level data.

Health Check

Docker monitors the container's health:

yaml
healthcheck:
  test: ["CMD", "curl", "-f", "http://localhost:18789/"]
  interval: 30s
  timeout: 10s
  retries: 3
  start_period: 60s

The gateway takes up to 60 seconds to start. After that, Docker checks every 30 seconds. If three consecutive checks fail, Docker marks the container as unhealthy.

Container Permissions

The container runs as root (user: "0"). This is intentional — OpenClaw needs root access to:

  • Install packages at runtime (skills may require additional tools)
  • Access system resources for browser automation
  • Manage files across the container filesystem

Docker Daemon Configuration

The host's Docker daemon is hardened with these settings:

Setting Value Purpose
live-restore true Containers survive Docker daemon restarts
userland-proxy false Use iptables instead (better performance)
no-new-privileges true Prevents privilege escalation
log-driver json-file Structured logging
log-opts.max-size 50m Prevents log files from filling disk
log-opts.max-file 3 Keeps last 3 log files
storage-driver overlay2 Standard storage driver

Common Docker Commands

If you SSH into your instance, these commands are useful:

Check Container Status

bash
docker ps

View Container Logs

bash
# Last 100 lines
docker logs --tail 100 openclaw-<id>

# Follow logs in real-time
docker logs -f openclaw-<id>

Restart the Container

bash
cd /opt/openclaw && docker compose restart

Execute Commands Inside the Container

bash
# Interactive shell
docker exec -it openclaw-<id> bash

# Run a single command
docker exec openclaw-<id> node --version

Check Resource Usage

bash
docker stats openclaw-<id> --no-stream

This shows current CPU, memory, and network usage.

What Not to Do

  • Do not run docker compose down — This stops and removes the container. Use restart instead.
  • Do not pull a new image manually — ClawHosters manages image updates through snapshots.
  • Do not modify docker-compose.yml — ClawHosters overwrites it during redeployment. Custom changes will be lost.
  • Do not change the memory limit — It is set based on your tier. Increasing it beyond the VPS capacity will crash the host.

Related Documentation