返回顶部
D

DockerDocker容器技术

Docker containers, images, Compose stacks, networking, volumes, debugging, production hardening, and the commands that keep real environments stable. Use when (1) the task touches Docker, Dockerfiles, images, containers, or Compose; (2) build reliability, runtime behavior, logs, ports, volumes, or security matter; (3) the agent needs Docker guidance and should apply it by default.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.4
安全检测
已通过
10,573
下载量
免费
免费
21
收藏
概述
安装方式
版本历史

Docker

何时使用

当任务涉及Docker、Dockerfile、容器构建、Compose、镜像发布、网络、卷、日志、调试或生产环境容器操作时使用。此技能为无状态技能,一旦出现Docker相关工作即可直接应用。

快速参考

主题文件
基础命令commands.md
Dockerfile模式
images.md | | Compose编排 | compose.md | | 网络与卷 | infrastructure.md | | 安全加固 | security.md |

核心规则

1. 固定镜像版本

  • - 使用 python:3.11.5-slim 而非 python:latest
  • 今天的latest版本与明天的不同——会破坏不可变构建

2. 合并RUN命令

  • - 在单个层中执行 apt-get update && apt-get install -y pkg
  • 分离的层会导致数周后出现过时的包缓存

3. 默认使用非root用户

  • - 在Dockerfile中添加 USER nonroot
  • 以root身份运行会导致安全扫描和平台策略失败

4. 设置资源限制

  • - 每个容器添加 -m 512m
  • 否则OOM killer会在无预警的情况下触发

5. 配置日志轮转

  • - 默认的json-file驱动没有大小限制
  • 一个话多的容器会填满磁盘并导致主机崩溃

镜像陷阱

  • - 多阶段构建:忘记 --from=builder 会静默地从错误阶段复制内容
  • COPY在RUN之前执行,每次文件变更都会使缓存失效——先复制依赖文件,安装,再复制代码
  • ADD 会自动解压归档文件——除非需要解压,否则使用 COPY
  • 构建参数在镜像历史中可见——切勿用于机密信息

运行时陷阱

  • - 容器内的 localhost 是容器的本地主机——应绑定到 0.0.0.0
  • 端口已被占用:前一个容器仍在停止中——等待或强制移除
  • 退出码137 = OOM被杀死,139 = 段错误——使用 docker inspect --format={{.State.ExitCode}} 检查
  • distroless镜像中没有shell——使用 docker cp 导出文件或使用调试sidecar

网络陷阱

  • - 容器DNS仅在自定义网络上工作——默认桥接网络无法解析名称
  • 已发布的端口绑定到 0.0.0.0——使用 127.0.0.1:5432:5432 实现仅本地访问
  • 被杀死容器的僵尸连接——设置健康检查和重启策略

Compose陷阱

  • - dependson 等待容器启动,而非服务就绪——使用 condition: servicehealthy
  • 位于错误目录的 .env 文件会被静默忽略——必须与docker-compose.yml在同一目录
  • 卷挂载会覆盖容器文件——空的主机目录 = 空的容器目录
  • YAML锚点不能跨文件使用——改用多个compose文件

卷陷阱

  • - 匿名卷会静默累积——使用命名卷
  • 绑定挂载存在权限问题——容器用户必须与主机用户匹配
  • docker system prune 不会移除命名卷——添加 --volumes 标志
  • 已停止容器的数据会持续存在,直到容器被移除

资源泄漏

  • - 悬空镜像无限增长——定期执行 docker image prune
  • 构建缓存永远增长——docker builder prune 回收空间
  • 已停止的容器占用磁盘——docker container prune 或在运行时使用 --rm
  • 来自compose项目的网络堆积——docker network prune

机密与安全

  • - ENV和COPY会将机密信息永久嵌入层历史——使用机密挂载或运行时环境变量
  • --privileged 禁用所有安全措施——几乎不需要,应寻找特定能力
  • 来自未知仓库的镜像可能是恶意的——验证来源
  • 构建参数在镜像历史中可见——不要用于机密信息

调试

  • - 退出码137 = OOM被杀死,139 = 段错误——检查 docker inspect --format={{.State.ExitCode}}
  • 容器无法启动:即使对于失败的容器也要检查日志——docker logs
  • distroless镜像中没有shell——使用 docker cp 导出文件或使用调试sidecar
  • 检查已死亡容器的文件系统——docker cp deadcontainer:/path ./local

相关技能

如果用户确认,使用 clawhub install 安装:
  • - devops — 部署流水线
  • linux — 主机系统管理
  • server — 服务器管理

反馈

  • - 如果有用:clawhub star docker
  • 保持更新:clawhub sync

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 docker-1776329724 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 docker-1776329724 技能

通过命令行安装

skillhub install docker-1776329724

下载

⬇ 下载 Docker v1.0.4(免费)

文件大小: 7.78 KB | 发布时间: 2026-4-17 14:09

v1.0.4 最新 2026-4-17 14:09
Simplified the skill name and kept the stateless activation guidance

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部