Docker 工具栈
TOC
其他
- awesome-docker
- docker-diff: 比较两个 image 的文件改动
- container-diff: 备选方案
- dive: 查看 docker 镜像的每一层 layer。支持 diff
- containerd: 替代 docker daemon。K8S 和 Docker 的容器运行时依赖组件。
- docker-socket-proxy: 在 docker 客户端与 docker.sock 之间的 proxy,用于权限控制 docker.sock 暴露的 API。
- socket-proxy: 备选方案
虚拟机
- lima: 运行在 Mac 上的虚拟机
- colima: Docker Desktop 替代品。基于 lima。
- orbstack: 在 Mac 运行 Docker 和 Linux 虚拟机的工具。启动秒开,轻量级,高性能。
镜像供应
由可靠的组织构建的镜像
镜像加速
CLI
- Podman: 兼容 docker CLI。无 daemon 的容器管理工具,命令式启动容器。
- Nerdctl: 兼容 docker CLI。containerd 的上层封装。nerdctl 的目标是促进实验 containerd 的新功能,并非代替 docker 以及作为 k8s 的调试工具。详见 motivation。
- nerdctld: 创建 nerdctl.sock 代替 docker.sock。目前有很多 API 未实现,基本不可用。
- crictl: CLI for kubelet CRI。不兼容 docker CLI
- ctr: CLI for containerd。不兼容 docker CLI
OCI
镜像制作
- buildah: 替代
docker build
。不依赖 daemon 或容器,直接编译出镜像文件。支持 shell 脚本编写镜像制作过程,也支持 Dockerfile 的写法。 - tini: init 进程
- dumb-init: 备选方案
- linuxkit: 自由组合多个基础镜像,拼成一个操作系统的镜像。
- Distroless: Google 出品的基础镜像,没有 Shell,只包含最基本的依赖。相对更安全。
镜像管理
- skopeo: 替代
docker images
. Work with remote images registries. - distribution: 镜像仓库
监控
- ctop: Top-like CLI command for docker container metrics,本地开发挺方便的
安全
日志
可视化管理/UI
- Portainer: docker web dashboard。目前不能完全支持 podman 和 nerdctl。
- Yacht: docker web dashboard
- lazydocker: 管理 docker 的 TUI 工具