Skills docker-socket-proxy
Manage a remote Docker host via a Tecnativa docker-socket-proxy instance. Unlike raw Docker socket access (which is root-equivalent), docker-socket-proxy acts as a firewall: each API section is individually enabled or disabled via env vars, so the agent only gets access to what you explicitly allow. Requires docker-socket-proxy exposed over TCP. Covers the full Docker REST API surface: container lifecycle (list, start, stop, restart, kill, pause, unpause, rename, exec), inspection (logs, stats, top, changes), images, networks, volumes, Swarm, plugins, system info, and event streaming.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bp602/docker-socket-proxy" ~/.claude/skills/clawdbot-skills-docker-socket-proxy && rm -rf "$T"
manifest:
skills/bp602/docker-socket-proxy/SKILL.mdsource content
Docker Socket Proxy
Manages Docker containers via the
tecnativa/docker-socket-proxy REST API using curl and jq. Which modes are available depends on which API sections the proxy instance has enabled.
Trigger conditions
- User asks to list, start, stop, restart, kill, pause, or unpause a container or service
- User wants container logs, stats, top processes, or filesystem changes
- User asks about Docker images, networks, volumes, swarm services, or tasks
- A service needs to be restarted after a config change
Usage
bash {baseDir}/scripts/run-docker.sh <mode> [args...]
Run with no arguments for full usage. Proxy URL is resolved from
$DOCKER_PROXY_URL → $DOCKER_HOST (tcp→http) → http://localhost:2375.
Modes
System
| Mode | Description |
|---|---|
| Health check |
| Docker version |
| Host summary (containers, memory, etc.) |
| Recent events (1s window) |
| Disk usage by images/containers/volumes |
Containers
| Mode | Description |
|---|---|
| Running containers |
| All containers including stopped |
| Full container details |
| Running processes inside container |
| Container logs (default tail=100) |
| CPU, memory, network, block I/O |
| Filesystem changes since start |
| Start container |
| Stop container |
| Restart container |
| Kill container (default SIGKILL) |
| Pause container |
| Unpause container |
| Rename container |
| Run command in container |
| Remove stopped containers |
Images
| Mode | Description |
|---|---|
| List images |
| Image details |
| Layer history |
| Remove unused images |
Networks
| Mode | Description |
|---|---|
| List networks |
| Network details and connected containers |
| Remove unused networks |
Volumes
| Mode | Description |
|---|---|
| List volumes |
| Volume details |
| Remove unused volumes |
Swarm
| Mode | Description |
|---|---|
| Swarm info |
| List nodes |
| Node details |
| List services |
| Service details |
| Service logs |
| List tasks |
| List configs |
| List secrets |
Plugins
| Mode | Description |
|---|---|
| List plugins |
Name matching
Container names can be partial —
myapp matches project-myapp-1. Exact match is tried first, then substring. Errors clearly if 0 or 2+ containers match.
Notes
- Modes that require disabled proxy sections (e.g.
,IMAGES
,NETWORKS
,VOLUMES
) will return HTTP 403. This is expected — enable the relevant env var on the proxy to unlock them.SYSTEM
is two-step (create + start) and streams multiplexed output.exec
uses a 1-second window by default; useevents
/--since
to adjust.--until