技能 docker-expert
📦

docker-expert

安全 ⚙️ 外部命令📁 文件系统访问🔑 环境变量

掌握 Docker 容器化与部署

为低效的 Docker 构建、安全漏洞或复杂的编排问题所困扰?获取关于多阶段构建、容器加固和生产就绪型 Docker Compose 模式的专家指导。

支持: Claude Codex Code(CC)
📊 71 充足
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“docker-expert”。 优化此 Dockerfile,它在安装依赖之前复制所有源代码

预期结果:

重构后的 Dockerfile,在复制源代码之前先安装依赖,启用 npm 层缓存。分离构建和运行时阶段,使用 Alpine 基础将最终镜像从 1.2GB 减少到 180MB。添加非 root 用户以增强安全性,并添加 HEALTHCHECK 用于监控。

正在使用“docker-expert”。 为使用 PostgreSQL 的 Rails 应用在生产环境中设置 Docker Compose

预期结果:

生产就绪的 Compose 配置,包含:分离的前端/后端网络、PostgreSQL 使用 Docker secrets 管理凭据、资源限制(0.5 CPU、512M 内存)、带有正确启动周期的健康检查,以及用于数据持久化的命名卷。

安全审计

安全
v2 • 2/24/2026

Static analyzer flagged 54 patterns across 4 risk categories. All findings are FALSE POSITIVES: external_commands are legitimate Docker CLI operations, network references are HEALTHCHECK documentation, filesystem paths are standard Docker directories, and env_access patterns demonstrate secure Docker secrets management. This is a documentation skill (SKILL.md) providing Docker expertise - not executable code. No malicious intent detected.

1
已扫描文件
415
分析行数
3
发现项
2
审计总数
审计者: claude 查看审计历史 →

质量评分

38
架构
100
可维护性
87
内容
31
社区
100
安全
91
规范符合性

你能构建什么

优化生产环境 Docker 构建

使用多阶段构建和正确的层缓存策略,将镜像体积从千兆字节减少到兆字节。

加强容器安全

实施非 root 运行、drop capabilities,并使用 Docker secrets 而非环境变量安全管理密钥。

设计微服务编排

创建生产就绪型的 Docker Compose 配置,包含健康检查、资源限制和服务隔离。

试试这些提示

Dockerfile 审查
审查我的 Dockerfile 寻找优化机会。当前构建需要 15 分钟并生成 1.2GB 的镜像。识别层缓存问题并建议多阶段构建改进。
安全加固审计
审计此 Docker Compose 配置的安全问题。检查 root 运行、暴露的密钥、缺失的资源限制和网络隔离。提供具体的修复步骤。
多服务编排
为微服务应用程序设计 Docker Compose 设置,包含:Node.js API、PostgreSQL 数据库、Redis 缓存和 Nginx 反向代理。包括健康检查、正确的网络和密钥管理。
构建性能调试
我的 Docker 构建很慢,缓存在每次代码更改时都会失效。分析我的构建流程和 Dockerfile 结构。提出最大化缓存命中的层排序策略。

最佳实践

  • 在复制源代码之前先安装依赖,以利用 Docker 层缓存
  • 使用多阶段构建将构建工具与运行时产物分离
  • 使用 Docker secrets 或构建时挂载管理密钥,切勿将其嵌入环境变量或镜像层中

避免

  • 以 root 用户运行容器 - 如果容器被攻破会产生安全漏洞
  • 在安装依赖之前使用 COPY . . 复制整个目录 - 每次代码更改都会导致缓存失效
  • 为基础镜像使用 latest 标签 - 阻止可重现构建并可能引入意外的破坏性更改

常见问题

何时应该使用 Alpine vs distroless vs 完整基础镜像?
Alpine(5-10MB)适用于大多数情况,但可能存在 libc 兼容性问题。Distroless(最小运行时、无 shell)为生产环境提供最小的攻击面。完整镜像(Ubuntu、Debian)最适合调试和复杂的构建需求。
如何有效减小 Docker 镜像体积?
使用多阶段构建从最终镜像中排除构建工具。在同一 RUN 层中清理包管理器缓存。仅复制必要的产物。选择合适的基础镜像。从生产镜像中删除不必要的文件,如文档和测试文件。
在 Docker 中处理密钥的正确方法是什么?
切勿将密钥存储在 Dockerfile 层或环境变量中。对于 Swarm 使用 Docker secrets,对于 BuildKit 使用构建时密钥挂载(--mount=type=secret),或使用外部密钥管理系统。在容器中将密钥引用为文件(/run/secrets/secret_name)。
为什么我的 Docker 构建不使用缓存?
当任何指令层更改时会发生缓存失效。先复制包文件并安装依赖,然后再复制源代码。按照从最不变到最多变的顺序排列 Dockerfile 指令。尽可能使用特定的文件模式而非 COPY . .。
如何为我的容器配置健康检查?
添加 HEALTHCHECK 指令,设置适当的间隔、超时和重试。使用应用程序特定的端点(curl http://localhost:port/health)而非进程检查。设置 start-period 以允许应用程序在健康监控开始前初始化。
我应该在生产环境中使用 Docker Compose 吗?
Compose 适用于小规模生产和测试环境。对于大规模部署,请考虑 Kubernetes 或 Docker Swarm。Compose 缺乏编排器提供的高级功能,如自动伸缩、滚动更新和自愈。

开发者详情

文件结构

📄 SKILL.md