veggiemonk/awesome-docker · 上手攻略

  • 仓库:veggiemonk/awesome-docker
  • 链接:https://github.com/veggiemonk/awesome-docker
  • 分类:skill(开发者工具 · Docker 生态导航)
  • 作者:Jay
  • 更新:2026-07-14

一、是什么

awesome-docker 是一个精选的 Docker 生态资源列表(Awesome List),由 Veggiemonk 维护,收录了与 Docker 容器技术相关的优质开源项目、工具、服务和学习资源。它不是某个具体的软件,而是一份" Docker 生态地图",帮助开发者快速找到适合自己场景的工具。

GitHub Stars 36422(持续增长中),是 Docker 领域最有影响力的 Awesome 列表之一。

官网:https://awesome-docker.com(指向 GitHub)


二、解决什么问题

Docker 生态工具众多且碎片化:

  • 构建镜像用什么?buildx?BuildKit?earthly?Kaniko?
  • 安全扫描用 Trivy 还是 Clair 还是 Grype?
  • 无 Dockerfile 怎么构建 Go 镜像?用 ko!
  • 镜像太大怎么压缩?DockerSlim、img、hadolint……

awesome-docker 把这些工具按类别整理好,让你不再迷失在工具海洋里,需要什么去查对应分类就有完整的候选列表和简短说明。


三、快速安装

这不是一个需要安装的软件,而是一个导航资源库。

方式一:直接浏览 GitHub

https://github.com/veggiemonk/awesome-docker

方式二:克隆到本地(方便离线查阅)

git clone https://github.com/veggiemonk/awesome-docker.git
cd awesome-docker
# 用任意 Markdown 阅读器打开 README.md
cat README.md | less

方式三:在 VS Code / Typora 中打开

支持 TOC 自动生成目录结构,体验接近 Wiki。


四、核心内容速览

awesome-docker 的内容按以下大类组织:

4.1 Engine & Runtime(容器引擎与运行时)

工具 说明
colima macOS/Linux 上的容器运行时,最小化配置,开箱即用
containerd CNCF 孵化的容器运行时,Docker 的底层支撑
podman 无守护进程 daemonless 容器,Docker 替代
gVisor Google 沙箱容器运行时,比 gVisor 更安全
youki Rust 实现的 OCI runtime
runc OCI 规范参考实现,Docker 底层工具

推荐组合(macOS 开发环境):

brew install docker colima
colima start --arch aarch64 --vm-type=vz --vz-rosetta
docker info  # 验证

4.2 Building Images(镜像构建)

Builder(构建工具)

工具 说明 特色
buildx Docker 官方插件,多平台构建 背书广泛,原生集成
BuildKit 并行构建,高效缓存 Dockerfile 无关
earthly Dockerfile + Makefile 语法融合 可复现构建
DockerSlim 自动缩减镜像体积 可压缩 30x+
ko Go 应用无需 Dockerfile 极简主义
img 无守护进程构建 无 root 依赖
Hadolint Dockerfile Linter 最佳实践检查

快速体验 BuildKit:

docker buildx install  # 安装 buildx
docker buildx create --use  # 创建并使用新的 builder
# 在 Dockerfile 中启用 BuildKit
# DOCKER_BUILDKIT=1 docker build .
# 或在 docker-compose.yml 中:
# version: "3.9"
# services:
#   app:
#     build:
#       builder: default
#       dockerfile: Dockerfile
#       labels:
#         org.opencontainers.artifact.created: "2024-01-01T00:00:00Z"

DockerSlim 压缩示例:

docker-slim build --http=false my-fat-image:latest
# 输出:my-fat-image.slim:latest(体积大幅缩小)

Hadolint 检查 Dockerfile:

docker run --rm -i hadolint/hadolint < Dockerfile
# 或安装本地工具
brew install hadolint
hadolint Dockerfile

Base Images(基础镜像)

镜像 说明
distroless 无 OS 的语言镜像,极简安全
Chainguard Images 签名+SBOM,最小化 + 安全
Wolfi 专为容器设计的非 glibc 发行版

💡 生产推荐:Java/Node.js/Python 服务优先考虑 distroless 或 Chainguard Images,镜像体积可减少 10 倍以上,且不含多余攻击面。

4.3 Registry(镜像仓库 & CLI)

工具 说明
Harbor CNCF 毕业项目,企业级私有镜像仓库
crane 轻量镜像管理 CLI
skopeo 无 daemon 的镜像复制工具
oras OCI 兼容的任意制品推送
JFrog Artifactory 通用制品库,商业级

常用 Registry 操作:

# 用 crane 复制镜像
crane copy source:image:tag dest:image:tag

# 用 skopeo 复制镜像(无需 daemon)
skopeo copy docker://source/image:tag docker://dest/image:tag

# 查看镜像元数据
crane manifest my-registry.com/image:tag | jq

4.4 Image Scanning & SBOM(安全扫描)

工具 说明
Trivy Aqua Security 开源,简单全面
Grype Syft 配套,CLI 友好
Docker Scout Docker 官方 CLI 内置
Clair 静态漏洞分析,CNCF 项目

Trivy 扫描示例:

# 安装
brew install trivy

# 扫描本地镜像
trivy image my-app:latest

# 扫描 Dockerfile(预防性)
trivy config Dockerfile

# 扫描文件系统
trivy fs /path/to/project

Grype 配合 Syft 生成 SBOM:

# 生成 SBOM
syft my-app:latest -o cyclonedx-json > sbom.json

# 基于 SBOM 扫描漏洞
grype sbom:sbom.json

4.5 Orchestration(编排)

工具 说明
Kubernetes 容器编排标准
Docker Swarm Docker 原生编排,门槛低
Rancher K8s 管理平台
Nomad HashiCorp 出品,简单orch
kompose Docker Compose → K8s YAML

kompose 转换示例:

# 安装
brew install kompose

# Docker Compose 转 K8s
kompose convert -f docker-compose.yml

4.6 Observability(可观测性)

  • 日志:Fluentd、ELK Stack、Loki
  • 指标:cAdvisor、Prometheus、DataDog
  • 追踪:Jaeger、Zipkin

4.7 Security(安全)

签名与验证示例(cosign):

# 安装
brew install cosign
cosign generate-key-pair

# 签名镜像
cosign sign --key cosign.key my-registry.com/my-app:latest

# 验证
cosign verify --key cosign.pub my-registry.com/my-app:latest

4.8 Developer Workflow(开发工作流)

  • CI/CD:GitHub Actions、Docker Hub Build、GitLab CI
  • 开发环境Dev Container、Go MySQL Browser 等
  • TestingTestcontainers(用真实容器跑集成测试)

4.9 学习资源(Learning Resources)

awesome-docker 收录了大量高质量教程、书籍、博客和视频,涵盖: - Docker 入门到进阶路线 - Kubernetes 学习路径 - 安全最佳实践 - Raspberry Pi / ARM 架构容器化


五、典型适用场景

场景 推荐关注章节
搭建本地 Docker 开发环境(Mac/Linux) Engine & Runtime → colima
多平台镜像构建 Building Images → buildx, buildKit
压缩大镜像体积 Building Images → DockerSlim
Go 项目无 Dockerfile 部署 Building Images → ko
Dockerfile 质量检查 Building Images → Hadolint
镜像漏洞扫描 Image Scanning → Trivy, Grype
供应链安全(签名) Supply Chain → cosign
私有镜像仓库 Registry → Harbor
从 Docker Compose 迁移 K8s Orchestration → kompose

六、坑与注意

  1. awesome-docker 不是工具本身:它只是一个索引/导航,使用某个工具仍需阅读该工具的官方文档。例如用 Trivy 不能只靠 awesome-docker,还要看 Trivy 的用法文档。

  2. 工具版本差异大:列表中的许多工具更新频繁,同类工具功能重叠(如 Trivy vs Grype vs Clair),建议根据实际使用场景和社区活跃度做选择。

  3. macOS 特有:colima 是 macOS/Linux 专用,Windows 用户需要 WSL2 + Docker Desktop 或 Rancher Desktop。

  4. BuildKit vs buildx:BuildKit 是底层引擎,buildx 是 Docker CLI 插件提供用户接口;两者常被混淆,实际上启用 buildx 后构建默认就走 BuildKit。

  5. distroless 镜像兼容性:distroless 镜像没有 shell,不支持 docker exec,调试时需要额外手段(如 kubectl debug)。

  6. cosign/sigstore 生态较新:签名验证需要基础设施支持(如 Rekor 透明日志),生产集成有一定复杂度。

  7. 工具众多,容易选择困难:如果你只是想"把镜像变小",直接用 DockerSlim;想"扫描漏洞",直接用 Trivy;无需读完整个列表再动手。


七、与同类对比

列表 内容范围 特点
awesome-docker Docker 生态专项 专注 Docker,覆盖最全
awesome-selfhosted 自托管软件总览 包含 Docker 部署,但不专注
awesome-kubernetes K8s 生态 不包含基础镜像/Dockerfile 工具
官方 Docker 文档 Docker 产品 只含官方工具,无社区生态

awesome-docker 的优势在于只收录真正围绕 Docker 生态的工具,收录标准明确("如果去掉 Docker 功能项目就没有价值,就不收录"),质量较高,不会出现"沾边就算"的情况。


八、一句话推荐

awesome-docker 是 Docker 生态的百科全书,需要任何容器相关工具时,先来这里按图索骥,比在搜索引擎里大海捞针高效得多。