書名: Nuclio實戰及源碼分析:基于Kubernetes的Serverless FaaS平臺作者名: 李彬 詹煜卓 任勝寒 張晨編著本章字數: 375字更新時間: 2024-08-06 16:59:56
1.3.2 容器鏡像構建工具——Kaniko
Kaniko是Google開發的、從Dockerfile(一個文本文檔,其中包含了用戶創建鏡像的所有命令和說明)中構建容器鏡像的工具,是開源的。
傳統的Docker構建是一個Docker守護進程,它使用根用戶(Root)在主機上順序執行,并根據Dockerfile生成鏡像的每一層。當Docker后臺進程無法暴露時,構建鏡像就會變得困難。Kaniko就很好地解決了這個問題。它不依賴于Docker守護進程,而是完全在用戶空間中執行Dockerfile中的每個命令。
Kaniko是以容器方式運行的,運行時需要三個參數:Dockerfile、上下文、遠端倉庫。Kaniko執行構建鏡像的過程如下:
1)從Dockerfile提取基礎鏡像到文件系統。
2)根據Dockerfile的命令逐條執行。
3)每條命令執行后會在用戶空間生成文件系統的快照,并與存儲在內存中的狀態進行比對。
4)如果有變化,就將生成一個鏡像層并添加在原來的基礎鏡像層之上。
5)所有命令執行完畢后,Kaniko會將最終鏡像推送到指定的遠程倉庫。
Kaniko的工作流程如圖1-4所示。

圖1-4 Kaniko的工作流程
推薦閱讀
- Java 開發從入門到精通(第2版)
- Software Testing using Visual Studio 2012
- Visual Basic程序設計(第3版):學習指導與練習
- PhpStorm Cookbook
- Python機器學習經典實例
- 大學計算機基礎(第2版)(微課版)
- Reactive Android Programming
- Java編程技術與項目實戰(第2版)
- Mathematica Data Analysis
- Web Development with MongoDB and Node(Third Edition)
- Asynchronous Android Programming(Second Edition)
- Android系統原理及開發要點詳解
- C#應用程序設計教程
- 第一行代碼 C語言(視頻講解版)
- D3.js By Example