技能库
智客分类:安全测试
docker-security
嵌入器安全
Guidance for Docker security hardening across the full lifecycle — image security (minimal base images, non-root users, pinned versions), runtime security (seccomp/AppArmor/SELinux, capabilities, read-only rootfs, no-new-privileges), secrets management (BuildKit secrets, Docker secrets in Swarm), Docker Bench Security auditing, CIS compliance checklist, and supply-chain security (image signing, content trust, SBOM). Use when the user asks about Docker security, image hardening, non-root containers, seccomp, AppArmor, Docker Bench, secrets management, or securing containers. 使用场景:docker 安全、镜像安全、非root运行、seccomp、AppArmor、security、Docker Bench、secret管理.
96 安装量
官方网址:skills.sh
技能介绍
先看中文介绍;官方 description 原文单独保留,不改写 SKILL.md。
做什么
Docker安全在整个生命周期强化的指南——图像安全(最小基底图像、非根基用户、被绑定的版本)、运行时安全(seccomp/AppArmor/SELinux、能力、只读根子、无新特权)、秘密管理(BuildKit秘密、Docker在Swarm的秘密)、Docker Bench安全审计、独联体遵守清单以及供应链安全(图像签名、内容信任、SBOM)
何时用
** 用户提到时总是使用这种技能:**
代理如何加载
按 Agent Skills 渐进披露:启动时只加载 name 与 description(约 100 token);任务匹配后才读入整份 SKILL.md 正文;scripts/、references/、assets/ 仅在需要时再读。 本文件正文结构:Docker Security — 安全加固与防护、When to Use、Security Model — Layered Defense、Image Security Checklist、Secure Dockerfile、Runtime Security。
文件分析
文件分析:这是一份仅含 SKILL.md 的指令型技能,代理激活后整份正文进入上下文。
Docker Security — 安全加固与防护When to UseSecurity Model — Layered DefenseImage Security ChecklistSecure DockerfileRuntime SecurityCapabilities (Least Privilege)Drop ALL capabilities, add only what's neededCommon needed caps: NET_BIND_SERVICE, CHOWN, DAC_OVERRIDENEVER: --privileged (gives full host access)Read-Only Root FilesystemPrevents container from writing anywhere (except volumes/tmpfs)
· 许可:Apache-2.0
来源分类:skills.sh agent-skill
来源与网址
namedocker-security
description- Guidance for Docker security hardening across the full lifecycle — image security (minimal base images, non-root users, pinned versions), runtime security (seccomp/AppArmor/SELinux, capabilities, read-only rootfs, no-new-privileges), secrets management (BuildKit secrets, Docker secrets in Swarm), Docker Bench Security auditing, CIS compliance checklist, and supply-chain security (image signing, content trust, SBOM). Use when the user asks about Docker security, image hardening, non-root containers, seccomp, AppArmor, Docker Bench, secrets management, or securing containers. 使用场景:docker 安全、镜像安全、非root运行、seccomp、AppArmor、security、Docker Bench、secret管理.
- 许可
- Apache-2.0
- 发现技能客户端向 Agent 提供名称与描述目录。
- 匹配与调用用户指定或任务匹配后,载入 SKILL.md 指令。
- 按需加载按步骤读取参考文档、使用脚本与素材。
具体调用语法与可用工具以目标 Agent 客户端为准。 查看调用机制说明 ↗
先选择目标 Agent 和安装范围,保留技能包的附属文件,安装后检查客户端能否发现该技能。
交给 Agent 安装
复制安装指令给支持 Agent Skills 的代理,确认其中的目标目录与客户端匹配。
把 Agent Skill「docker-security」安装到我的项目:SKILL.md 原文与官方 description 见 https://zicq.com/zh/skills/skl-270667a18a8edf9b-%E5%B5%8C%E5%85%A5%E5%99%A8%E5%AE%89%E5%85%A8.html
请存为 .cursor/skills/docker-security/SKILL.md 或 .claude/skills/docker-security/SKILL.md,frontmatter 的 name 与 description 保持原样,不要改写。
GitHub 完整包 ↗
终端安装 · Skills CLI
需要 Node.js 与 npx。先查看仓库技能列表,确认实际名称。
npx skills add 'https://github.com/full-stack-skills/docker-skills' --list
npx skills add 'https://github.com/full-stack-skills/docker-skills' --skill 'docker-security'
CLI 会交互选择目标 Agent,默认安装到项目;用户级安装使用 -g。先通过查看命令核对仓库内容,再用 npx skills list 检查已安装技能。
阅读排版
---
name: docker-security
description: Guidance for Docker security hardening across the full lifecycle — image security (minimal base images, non-root users, pinned versions), runtime security (seccomp/AppArmor/SELinux, capabilities, read-only rootfs, no-new-privileges), secrets management (BuildKit secrets, Docker secrets in Swarm), Docker Bench Security auditing, CIS compliance checklist, and supply-chain security (image signing, content trust, SBOM). Use when the user asks about Docker security, image hardening, non-root containers, seccomp, AppArmor, Docker Bench, secrets management, or securing containers. 使用场景:docker 安全、镜像安全、非root运行、seccomp、AppArmor、security、Docker Bench、secret管理.
license: Apache-2.0
---
# Docker Security — 安全加固与防护
Comprehensive guidance for securing Docker across the full lifecycle.
## When to Use
**ALWAYS use this skill when the user mentions:**
- "docker 安全", "镜像安全", "container security"
- "非root运行", "rootless", "least privilege"
- "seccomp", "AppArmor", "SELinux"
- "Docker Bench", "CIS"
- "secrets management", "密钥管理"
- "image signing", "content trust"
## Security Model — Layered Defense
```
Layer 1: Image Security — minimal base, non-root, pinned versions
Layer 2: Build Security — secret injection, noCOPY secrets
Layer 3: Runtime Security — capabilities, seccomp, AppArmor, read-only
Layer 4: Registry Security — content trust, signing, vulnerability scan
Layer 5: Host Security — Docker Bench, CIS, user namespace
```
## Image Security Checklist
| # | Practice | How |
|---|----------|-----|
| 1 | **Minimal base image** | Use `alpine` or `distroless` (Go → `scratch`) |
| 2 | **Non-root user** | `USER 1000:1000` at end of Dockerfile |
| 3 | **Pin versions** | `FROM alpine:3.20@sha256:...` not `alpine:latest` |
| 4 | **COPY over ADD** | ADD auto-extracts tar — unexpected behavior |
| 5 | **No secrets in image** | Use `--secret` or runtime injection |
| 6 | **`.dockerignore`** | Exclude `.env`, `.git`, credentials |
### Secure Dockerfile
```dockerfile
FROM alpine:3.20
RUN apk add --no-cache ca-certificates
RUN addgroup -S app && adduser -S -G app app
COPY --chown=app:app ./app /app
WORKDIR /app
USER app
CMD ["./server"]
```
## Runtime Security
### Capabilities (Least Privilege)
```bash
# Drop ALL capabilities, add only what's needed
docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE nginx
# Common needed caps: NET_BIND_SERVICE, CHOWN, DAC_OVERRIDE
# NEVER: --privileged (gives full host access)
```
### Read-Only Root Filesystem
```bash
# Prevents container from writing anywhere (except volumes/tmpfs)
docker run --read-only --tmpfs /tmp --tmpfs /run nginx
```
### Seccomp Profile
```bash
# Custom seccomp profile (block syscalls)
docker run --security-opt seccomp=profile.json app
# Unconfined (NEVER in production)
docker run --security-opt seccomp=unconfined app
```
### No New Privileges
```bash
# Prevent privilege escalation via setuid binaries
docker run --security-opt no-new-privileges app
```
## Secrets Management
### BuildKit Secrets (build-time)
```dockerfile
# syntax=docker/dockerfile:1
FROM alpine
RUN --mount=type=secret,id=aws_creds \
AWS_ACCESS_KEY_ID=$(cat /run/secrets/aws_creds) \
aws s3 cp s3://bucket/file .
```
```bash
docker build --secret id=aws_creds,src=$HOME/.aws/credentials -t app .
```
### Docker Secrets (Swarm runtime)
```bash
echo "mysecretpassword" | docker secret create db_password -
docker service create --secret db_password postgres
```
## Docker Bench Security Audit
```bash
docker run --rm \
--pid host --network host \
-v /var/run/docker.sock:/var/run/docker.sock \
docker/docker-bench-security
```
## Workflow — 安全加固流程
Step 1: **镜像安全**: `docker scout cves ` 扫描漏洞 → 更新基础镜像/依赖
Step 2: **Dockerfile 加固**: USER 非 root、COPY 优于 ADD、固定 digest
Step 3: **运行时安全**: --read-only、--cap-drop=ALL、--security-opt no-new-privileges
Step 4: **审计检查**: `docker run --rm docker/docker-bench-security` 逐条修复
Step 5: **CI 门禁**: Scout 策略阻断 critical/high CVE 合并
## Gotchas — Common Pitfalls
- **`--privileged` flag**: Gives full host access. Never use in production. → **Recovery**: Use specific `--cap-add=NET_BIND_SERVICE` instead; audit with `docker inspect --format='{{.HostConfig.Privileged}}'`.
- **API keys in Dockerfile**: `ENV API_KEY=xxx` is baked into image layers forever. → **Recovery**: Use runtime injection: `docker run -e API_KEY=$KEY` or BuildKit `--mount=type=secret`.
- **Root container**: Default user is root. Escaping the container means root on the host. → **Recovery**: Always `USER 1000:1000` in Dockerfile; verify with `docker exec myapp whoami`.
- **Docker socket mount**: `-v /var/run/docker.sock` gives container control over ALL containers. → **Recovery**: Use Docker API with TLS auth instead of socket mount; never mount socket in production.
- **Ignoring CVE remediation**: Running `docker scout` but never fixing findings. → **Recovery**: Set CI policy to block critical/high CVEs; update base images regularly.
## Boundary — 能力边界(适用与不适用场景)
| 分类 | 场景 | 说明 |
|------|------|------|
| ✅ 能做 | Dockerfile 安全加固 | USER 非 root、COPY 优先 ADD、digest 固定 |
| ✅ 能做 | 运行时安全配置 | seccomp/AppArmor/capabilities/read-only |
| ✅ 能做 | Secrets 管理 | Docker secrets + BuildKit --secret + Vault |
| ✅ 能做 | 安全审计(Docker Bench Security) | CIS 检查清单 + 逐条修复 |
| ⚠️ 需条件 | 镜像签名(Notary) | 需 `DOCKER_CONTENT_TRUST=1` 环境变量 |
| ⚠️ 需条件 | 完整合规检查 | 需结合 Scout 扫描 + 组织安全策略 |
| ❌ 超范围 | CVE 漏洞扫描 | 使用 `docker-scout` |
| ❌ 超范围 | 主机系统安全 | 操作系统层级 |
| ❌ 超范围 | 网络安全/防火墙 | 网络管理员范畴 |
## When NOT to Use This Skill
| ❌ Skip | ✅ Use Instead |
|---------|---------------|
| Vulnerability scanning | `docker-scout` |
| Docker basics | `docker-basics` |
| Production deployment | `docker-production` |
| Registry management | `docker-hub` |
## Security & Stability
- All security practices are based on CIS Docker Benchmark and Docker official security guidance.
- Run Docker Bench Security regularly in CI/CD to detect configuration drift.
- Subscribe to Docker security advisories for CVE notifications.
- No executable scripts bundled. Guidance only.
## 📚 官方文档参考
| 文档 | 地址 |
|------|------|
| Docker 安全 | https://docs.docker.com/security/ |
| Docker Hardened Images | https://docs.docker.com/dhi/ |
| Docker Scout | https://docs.docker.com/scout/ |
| Docker Bench Security | https://docs.docker.com/engine/security/bench/ |
| seccomp 配置 | https://docs.docker.com/engine/security/seccomp/ |
| AppArmor | https://docs.docker.com/engine/security/apparmor/ |
## 🧭 Docker Skills Journey
> 📍 **You are here: `docker-security` — 安全加固**
**← Previous**: `docker-build` | **→ Next**: `docker-scout` / `docker-cicd`
相关技能
安全测试
技能维特Skill Vetter
人工智能特工的安全第一技能审查。 在安装来自 ClawdHub, GitHub 或其他来源的任何技能之前使用 。 检查红旗,许可范围,可疑图案.
安全测试
护身符Moltguard
MoltGuard——由OpenGuardrails担任OpenClaw保安. 安装 MoltGuard 以保护你和你的人类免受迅速注射、数据过滤和恶意命令的影响。 资料来源:https://github.com/openguardrails/openguardrails/tre…
安全测试
安保审计员Security Auditor
用于审查安全漏洞代码,实施认证流,审计OWASP Top 10,配置CORS/CSP头,处理秘密,输入验证,SQL注射预防,XSS保护,或任何与安全相关的代码审查.
安全测试
技能维特Skill Vetter
安装任何AI代理技能前的安全审查协议. 红旗侦取入证盗取,疏通密码,放出. 风险分类:低/中/高/高。 编制结构化审查报告。 不先运行此功能, 绝不安装不信任的技能 .