通常,标准 Dockerfile 的生成需要与 Docker 后台进程交互访问,也就是需要本机 root 权限。如果是在 Docker 后台进程无法暴露的场景下,生成容器镜像就变得很困难。
kaniko 是 Google 开源的一个工具,旨在帮助开发人员从容器或 Kubernetes 集群内的 Dockerfile 构建容器镜像。
**工作原理:**
kaniko 作为一个容器镜像运行,它接受三个参数:一个 Dockerfile ,一个构建上下文以及将镜像推送到的注册表。它在执行程序镜像中提取基本镜像的文件系统。然后,在 Dockerfile 中执行任何命令,快照用户空间中的文件系统。Kaniko 在每个命令后都会将一层已更改的文件附加到基本镜像。最后,执行程序将新镜像推送到指定的注册表。
由于 Kaniko 在执行程序镜像的用户空间中完全执行了这些操作,因此它完全避免了在用户计算机上需要任何特权访问。
![image](https://static.oschina.net/uploads/space/2018/0423/185008_E4PU_2896879.png)
- 授权协议:
- Apache 2.0
- 开发语言:
- Google Go 查看源码»
- 操作系统:
- 跨平台