OpenClaw
DevOps 与云推荐

OpenClaw Docker Essentials 技能指南

构建、运行和管理 Docker 容器与镜像。

最后更新: 2026-03-03

快速安装

$ npx clawhub@latest install docker-essentials

核心功能

使用自然语言从 Dockerfile 构建 Docker 镜像
按需运行、停止和重启容器
调试构建失败并查看容器日志
优化 Dockerfile 以获得更小、更快的镜像
管理 Docker Compose 多容器编排
清理未使用的镜像、容器和数据卷

概述

Docker Essentials 技能 通过 Docker CLI 为 OpenClaw 提供完整的 Docker 容器管理能力。无需记忆大量的 Docker 命令和参数,你只需用自然语言描述需求,OpenClaw 智能体就能帮你完成一切 — 从构建镜像到调试崩溃的容器。

Docker 是现代部署流程的基石,但其命令体系非常庞大。OpenClaw Docker Essentials 技能弥合了意图与执行之间的鸿沟,让各水平的开发者都能轻松使用容器化技术。无论你是要将 Node.js 应用打包上线,还是排查构建在第 7 层失败的原因,智能体都能将你的需求转化为正确的 docker 命令,并为你解读执行结果。

典型工作流:

  1. 让 OpenClaw 在容器中构建并运行你的应用。
  2. 智能体生成或读取你的 Dockerfile,使用正确的参数执行 docker builddocker run
  3. 结果以可读的摘要形式返回 — 无需切换上下文。

安装前的准备工作

在安装 Docker Essentials 技能之前,请确保你已具备:

  • 已安装并运行 OpenClaw(v1.0+)
  • 已安装 Docker Engine获取 Docker
  • Docker 守护进程正在运行 — 该技能通过 Docker Socket 通信
  • 已安装 clawhub CLI 用于技能管理

验证你的环境:

bash
# 检查 OpenClaw 版本
openclaw --version

# 检查 Docker 版本
docker --version

# 验证 Docker 守护进程是否运行
docker info

如果 docker info 返回错误,请在 Linux 上使用 sudo systemctl start docker 启动守护进程,或在 macOS / Windows 上打开 Docker Desktop。

如何安装

使用一条命令安装 Docker Essentials 技能:

bash
npx clawhub@latest install docker-essentials

安装前,你可以检查该技能的权限和源代码:

bash
clawhub inspect docker-essentials

验证安装结果:

bash
clawhub list

你应该能在已安装技能列表中看到 docker-essentials。该技能由 Arnarsson 创建,并带有 推荐 徽章,表明它经过充分测试,在正确配置下使用风险较低。

配置指南

Docker Essentials 技能通过本地 Docker Socket(/var/run/docker.sock)连接 Docker 守护进程。本地使用无需 API 密钥或令牌。

环境配置

bash
# 默认 Docker Socket(通常开箱即用)
export DOCKER_HOST=unix:///var/run/docker.sock

# 连接远程 Docker 主机(可选)
export DOCKER_HOST=tcp://your-remote-host:2376
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=~/.docker/certs

重要提示: 切勿在未启用 TLS 的情况下将 Docker Socket 暴露到网络上。如果连接远程 Docker 主机,务必启用 TLS 验证并使用客户端证书。

Docker Compose 支持

该技能同样支持 Docker Compose 工作流。请确保你已安装 Docker Compose V2(Docker Desktop 自带,或单独安装 docker-compose-plugin):

bash
docker compose version

使用示例

1. 构建并运行应用

你: "从项目根目录的 Dockerfile 构建 Docker 镜像,并在 3000 端口运行。"

智能体会执行 docker build -t my-app .docker run -d -p 3000:3000 my-app,然后报告容器 ID、映射端口,并确认应用可通过 localhost:3000 访问。

2. 调试崩溃的容器

你: "我的容器 api-server 一直崩溃,显示最后 50 行日志,告诉我哪里出了问题。"

智能体会执行 docker logs --tail 50 api-server,分析输出内容并找出根本原因 — 例如缺少环境变量或端口冲突。然后它会建议修复方案,并可以为你直接应用。

3. 优化 Dockerfile

你: "分析我的 Dockerfile,给出减小镜像大小的优化建议。"

智能体会读取你的 Dockerfile,识别常见问题(如不必要的层、缺少多阶段构建、基础镜像过大等),并提供具体的优化建议。它可以直接重写 Dockerfile 并应用优化 — 通常能将镜像大小缩减 50% 以上。

4. 清理 Docker 资源

你: "删除所有已停止的容器、悬空镜像和未使用的数据卷。"

智能体在确认清理范围后执行 docker system prune -a --volumes,并报告回收了多少磁盘空间以及移除了哪些资源。

5. 管理 Docker Compose 服务栈

你: "启动 docker-compose.yml 中定义的开发环境,并显示所有服务的状态。"

智能体会执行 docker compose up -ddocker compose ps,以格式化表格展示运行中的服务、端口和健康状态。如果某个服务启动失败,它会自动检查日志并报告问题。

安全与最佳实践

Docker 守护进程的访问权限非常强大 — 具有特定参数的容器可以访问主机文件系统、网络甚至其他容器。请遵循以下准则确保安全:

  • 避免使用特权模式。 除非绝对必要,切勿使用 --privileged。它会赋予容器对主机的完全访问权限。
  • 使用非 root 用户。 在 Dockerfile 中添加 USER 指令,使容器内的进程以非 root 用户身份运行。
  • 确认前先审查。 OpenClaw 在执行 docker system prunedocker rm -f 等破坏性命令前会提示你确认。务必仔细审查操作影响范围。
  • 限制资源使用。 使用 --memory--cpus 参数防止容器耗尽主机资源。
  • 扫描镜像漏洞。 搭配 docker scout 或 Snyk 使用,识别基础镜像中的已知 CVE。
  • 保持 Docker 更新。 运行最新稳定版的 Docker Engine 以获得安全补丁。

查看安全检查清单了解通用的技能安全准则。

常见错误与故障排除

"Cannot connect to the Docker daemon"

Docker 守护进程未运行,或当前用户没有访问 Socket 的权限。

bash
# 启动 Docker 守护进程(Linux)
sudo systemctl start docker

# 将当前用户添加到 docker 组(避免使用 sudo)
sudo usermod -aG docker $USER
# 注销并重新登录以使组变更生效

在 macOS 或 Windows 上,请确保 Docker Desktop 正在运行。

"no space left on device"

Docker 镜像、容器和数据卷占满了磁盘空间。

bash
# 查看 Docker 磁盘使用情况
docker system df

# 清理未使用的资源
docker system prune -a --volumes

建议使用 Cron Creator 技能设置定期清理计划。

"port is already allocated"

其他进程或容器已占用了请求的端口。

bash
# 查看哪个进程占用了端口(例如 3000 端口)
lsof -i :3000

# 或列出使用该端口的 Docker 容器
docker ps --filter "publish=3000"

停止冲突的进程,或使用 -p 3001:3000 将容器映射到其他主机端口。

常见问题

是的,合理使用即可安全。该技能遵循 OpenClaw 的确认模式 — 删除容器、清理镜像等破坏性操作在执行前需要你明确批准。我们建议避免使用 `--privileged` 容器,并在确认前始终审查智能体提出的命令。对于生产负载,建议搭配 [Kubernetes](/skills/kubernetes) 技能使用,以获得编排级别的管控能力。

可以。将 `DOCKER_HOST` 环境变量指向你的远程 Docker 守护进程(例如 `tcp://remote-host:2376`)。启用 `DOCKER_TLS_VERIFY=1` 进行 TLS 验证,并通过 `DOCKER_CERT_PATH` 提供客户端证书。该技能将使用已配置的主机执行后续所有操作。如需安全的远程访问而不暴露端口,可考虑使用 [Tailscale](/skills/tailscale) 技能创建私有网络隧道。

支持。该技能完整支持 Docker Compose V2 工作流。你可以让智能体启动多容器服务栈、检查服务状态、查看各服务日志以及拆除环境。请确保已安装 `docker-compose-plugin`(Docker Desktop 默认自带)。

该技能适用于 Docker Engine 20.10 及更高版本。我们建议运行最新稳定版以获取安全补丁和性能改进。运行 `docker --version` 检查当前版本,如需升级请访问 [Docker 安装指南](https://docs.docker.com/get-docker/)。

Docker Essentials 技能专注于单个容器和镜像 — 在容器级别进行构建、运行、调试和优化。[Kubernetes](/skills/kubernetes) 技能则工作在编排层面 — 管理 Pod、Deployment、Service 以及集群级资源。本地开发和单机部署使用 Docker Essentials;需要多节点编排、自动扩缩容和服务发现时使用 Kubernetes。两个技能互为补充,可以同时安装使用。

相关技能

Kubernetes
推荐

管理 Kubernetes 集群、部署和服务。

Vercel
推荐

在 Vercel 平台部署和管理项目。

Coolify
推荐

自托管部署平台(Heroku/Vercel 替代方案)。

在 ClawHub 安装返回技能目录