LAUNCH-SUB
LAUNCH-CLAWS
LAUNCH-SUB
LAUNCH-CLAWS
Docker Configuration
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
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
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:
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
docker ps
View Container Logs
# Last 100 lines
docker logs --tail 100 openclaw-<id>
# Follow logs in real-time
docker logs -f openclaw-<id>
Restart the Container
cd /opt/openclaw && docker compose restart
Execute Commands Inside the Container
# Interactive shell
docker exec -it openclaw-<id> bash
# Run a single command
docker exec openclaw-<id> node --version
Check Resource Usage
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. Userestartinstead. - 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
- Environment Variables — Variables passed to the container
- Resource Limits — CPU, RAM, storage by tier
- SSH Access — Connecting to your instance
- Rebuilding an Instance — Factory reset
Related Documentation
Architecture Overview
How ClawHosters Works ClawHosters is a managed hosting platform for OpenClaw, an open-source AI ...
Instance Monitoring and Health
Overview Every ClawHosters instance includes built-in health monitoring. The instance dashboard ...
Understanding Resource Limits
How Resources Are Allocated Each ClawHosters instance runs on a dedicated Hetzner Cloud VPS. The...