最近參與docker相關專案,用的docker版本是v1.12.6,正好想學習docker原始碼,市面上關於docker原始碼分析的書暫時只有《docker 原始碼分析》這一本(後面簡稱《分析》)。不過正文p2就來了句「本書關於docker的分析均基於docker 1.2.0版本的原始碼」,docker原始碼現在變化頻率非常大,1.12.6的**肯定已經大不一樣了。
通常像我一樣的菜鳥碼農學習原始碼第一件事是找入口函式位置,《分析》p17說「位於docker/docker/docker.go。這個go檔案包含了整個docker的main函式,也就是整個docker(不論docker daemon還是docker client)的執行入口」,不出所料,在1.12.6版本**裡根本就沒有docker/docker/docker.go這樣的檔案。
find -name查詢docker.go,結合find *|xargs grep main,注意到以下兩個檔案。
不用想了,上面的是客戶端的入口,下面是服務端,都有main入口函式。編譯安裝完成後對應兩個命令docker和dockerd。
看起來server和client的main函式區別已經比較大了啊。
關於main先記錄這麼多,後續持續補充。
docker原始碼學習 基礎架構
宣告本文學習原始碼為 1 1.2.0 liyang beta.internal.beta.10 11 147 62 docker cat version 1.2.0 docker主要模組包括 dockerclient dockerdaemon dockerregistry graph driver ...
spring 原始碼學習 1
1.spring 是乙個非侵入性 non invasive 框架,其目標是使應用程式 對框架的依賴最小化,應用 可以在沒有spring或者其它的容器下執行。2.spring提供了乙個一致的程式設計模型,使用應用直接使用pojo開發,從需可以與應用環境 如web伺服器 隔離開來。3.spring推動應...
Android原始碼學習1
1 logger日誌系統是基於核心中的logger日誌驅動程式實現的 四種日誌型別 main,system,radio,events 四個裝置檔案 dev log main,dev log system,dev log radio,dev log events main型別的日誌檔案 應用程式級別的...