Kaniko - 更安全可靠的方式在Kubernetes内构建容器镜像
kaniko是一个在容器或Kubernetes内从Dockerfile构建容器镜像的工具。
kaniko不依赖Docker守护进程,完全在用户空间执行Docker文件中的每个命令。这使得在不能轻易或安全地运行Docker守护进程的环境中构建容器镜像,例如标准的Kubernetes集群。
kaniko是要作为一个镜像来运行:gcr.io/kaniko-project/executor
。我们不建议在其他镜像中运行kaniko二进制文件,因为可能无法工作。
Kaniko是如何工作的?
kaniko executor(执行器)
镜像负责从 Dockerfile 构建镜像并将其推送到registry
。在执行器镜像中,我们提取了基础镜像的文件系统(Dockerfile 中的 FROM 镜像)。 然后我们执行 Dockerfile 中的命令,在每个命令之后在用户空间中对文件系统进行快照。 在每个命令之后,我们将一层更改的文件附加到基础图像(如果有的话)并更新镜像元数据。
已知问题(Known Issues)
- kaniko不支持构建Windows容器
- 不支持在官方kaniko镜像以外的任何Docker镜像中运行kaniko(即YMMV)。
- 这包括将官方镜像中的kaniko可执行文件复制到另一个镜像中。
- kaniko不支持v1版registry API(Registry v1 API 已弃用)。
教程
要使用 kaniko 构建和推送镜像,需要:
- 使用本地存储的kaniko的快速入门例子,参考入门教程。
2022开工大吉!
「此刻打盹,你将做梦;此刻学习,你将圆梦。」 --- 《哈佛图书馆二十条训言》