docker daemon的意思是:Docker的守護程式;daemon的主要功能包括映像管理、映像建置、REST API、驗證、安全性、核心網路以及編排。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
Docker Daemon
#Daemon是Docker的守護進程,Docker Client透過命令列與Docker Damon通信,完成Docker相關操作。
daemon的主要功能包括鏡像管理、鏡像建置、REST API、身份驗證、安全性、核心網路以及編排。
工作機制
Docker Daemon可以認為是透過Docker Server模組接受Docker Client的請求,並在Engine中處理請求,然後根據請求類型,建立指定的Job並運行,運行過程的作用有以下幾種可能:向Docker Registry獲取鏡像,透過graphdriver執行容器鏡像的本地化操作,透過networkdriver執行容器網路環境的配置,透過execdriver執行容器內部運行的執行工作等。
修改Docker Daemon
Docker Daemon有不同的修改方式:命令列修改,修改啟動項,修改設定檔。
其中僅僅只是研究或一次使用Docker Daemon的不同選項時,可以透過命令列的方式,此時Docker Daemon運行在前端,日誌直接印在終端上;
當Docker Daemon的設定很穩定,不常修改時,可以將Docker Daemon的選項放在啟動項目中;
當Docker Daemon的配置需要定時修改時,就可以把變化的選項放在設定檔中。
啟動流程
由於Docker Daemon和Docker Client的啟動都是透過執行檔docker來完成的,因此兩者的啟動流程非常相似。 Docker可執行檔案執行時,執行程式碼透過不同的命令列flag參數,區分兩者,並最終運行兩者各自對應的部分。
啟動Docker Daemon時,一般可以使用以下命令:docker --daemon=true; docker –d; docker –d=true等。接著由docker的main()函數來解析上述指令的對應flag參數,最後完成Docker Daemon的啟動。
透過Docker Daemon的流程圖,可以得到一個這樣的結論:有關Docker Daemon的所有的工作,都被包含在mainDaemon()方法的實作中。
宏觀來講,mainDaemon()完成建立一個daemon進程,並使其正常運作。
從功能的角度來說,mainDaemon()實作了兩部分內容:第一,建立Docker運行環境;第二,服務於Docker Client,接收並處理對應要求。
從實作細節來講,mainDaemon()的實作過程主要包含以下步驟:
1)daemon的設定初始化(這部分在init()函數中實現,即在mainDaemon( )運行前就執行,但由於這部分內容和mainDaemon()的運行息息相關,故可認為是mainDaemon()運行的先決條件;
2)命令列flag參數檢查;
3)建立engine物件;
4)設定engine的訊號擷取及處理方法;
#5)載入builtins;
##6)使用goroutine載入daemon物件並執行;7)列印Docker版本及驅動資訊;8)Job之」serveapi」的建立與運作。 推薦學習:《docker影片教學》
以上是docker daemon是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!