Docker架構簡介

參考文獻:https://www.infoq.cn/article/docker-source-code-analysis-part1/

https://static001.infoq.cn/resource/image/41/22/41cdc2bdeff20221c67563d673335a22.jpg

  1. Docker Client 是 Docker 架構中用戶用來和 Docker Daemon 建立通信的客戶端。用戶使用的可執行文件爲 docker,通過 docker 命令行工具可以發起衆多管理 container 的請求。
  2. Docker Daemon 是 Docker 架構中一個常駐在後臺的系統進程,功能是:接受並處理 Docker Client 發送的請求。該守護進程在後臺啓動了一個 Server,Server 負責接受 Docker Client 發送的請求;接受請求後,Server 通過路由與分發調度,找到相應的 Handler 來執行請求。
  3. Docker Registry 是一個存儲容器鏡像的倉庫。而容器鏡像是在容器被創建時,被加載用來初始化容器的文件架構與目錄。
  4. Graph:在 Docker 架構中扮演已下載容器鏡像的保管者,以及已下載容器鏡像之間關係的記錄者;
  5. Driver 是 Docker 架構中的驅動模塊。通過 Driver 驅動,Docker 可以實現對 Docker 容器執行環境的定製。
  6. networkdriver 的用途是完成 Docker 容器網絡環境的配置,其中包括 Docker 啓動時爲 Docker 環境創建網橋;Docker 容器創建時爲其創建專屬虛擬網卡設備;以及爲 Docker 容器分配 IP、端口並與宿主機做端口映射,設置容器防火牆策略等。
  7. execdriver 作爲 Docker 容器的執行驅動,負責創建容器運行命名空間,負責容器資源使用的統計與限制,負責容器內部進程的真正運行等。在 execdriver 的實現過程中,原先可以使用 LXC 驅動調用 LXC 的接口,來操縱容器的配置以及生命週期,而現在 execdriver 默認使用 native 驅動,不依賴於 LXC。
  8. Libcontainer:是 Docker 架構中一個使用 Go 語言設計實現的庫,設計初衷是希望該庫可以不依靠任何依賴,直接訪問內核中與容器相關的 API。
  9. Docker container(Docker 容器)是 Docker 架構中服務交付的最終體現形式。

https://img2018.cnblogs.com/blog/1659331/201905/1659331-20190520203007311-1598466918.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章