本節書摘來華章計算機《容器技術系列》一書中的第3章 ,第3.2節,孫宏亮 著, 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
docker daemon和docker client的啟動均通過可執行檔案docker完成,是以兩者的啟動流程非常相似。docker可執行檔案運作時,程式運作通過不同的指令行flag參數,區分兩者,并最終運作兩者各自相應的部分。
啟動docker daemon時,一般可以使用以下指令:docker --daemon=true、docker –d; docker -d=true等。随後由
docker的main()函數來解析以上指令的相應flag參數,并最終完成docker daemon的啟動。
首先,附上docker daemon的啟動流程圖,如圖3-2所示。

本書第2章已經描述了docker中main()函數運作的很多前期工作,docker daemon的啟動也會涉及這些工作,故在此略去相同部分,主要針對後續僅和docker daemon相關的内容進行深入分析,即maindaemon()的具體源碼實作。