|
-- 會員 / 註冊 --
|
|
|
|
Docker源碼分析 ( 簡體 字) |
作者:孫宏亮 | 類別:1. -> 作業系統 -> Docker |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 42229 詢問書籍請說出此書號!【缺書】 NT售價: 295 元 |
出版日:8/1/2015 |
頁數:247 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111510727 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書是一本引導讀者深入了解Docker實現原理的技術普及讀物,主要目標是通過對Docker架構和源代碼的詳細講解和解剖,幫助讀者對Docker的底層實現有一個全面的理解。本書的內容主要集中于三部分:Docker的架構、Docker的模塊,以及Docker的三駕馬車Swarm、Machine和Compose。
|
目錄:贊譽 序 前言 第1章 Docker架構 1 1.1 引言 1 1.2 Docker總架構圖 2 1.3 Docker各模塊功能與實現分析 3 1.3.1 Docker Client 4 1.3.2 Docker Daemon 4 1.3.3 Docker Registry 6 1.3.4 Graph 7 1.3.5 Driver 7 1.3.6 libcontainer 10 1.3.7 Docker Container 10 1.4 Docker運行案例分析 11 1.4.1 docker pull 11 1.4.2 docker run 12 1.5 總結 14 第2章 Docker Client創建與命令執行 15 2.1 引言 15 2.2 創建Docker Client 16 2.2.1 Docker命令的flag參數解析 17 2.2.2 處理flag信息并收集Docker Client的配置信息 20 2.2.3 如何創建Docker Client 22 2.3 Docker命令執行 24 2.3.1 Docker Client解析請求命令 24 2.3.2 Docker Client執行請求命令 25 2.4 總結 27 第3章 啟動Docker Daemon 28 3.1 引言 28 3.2 Docker Daemon的啟動流程 29 3.3 mainDaemon()的具體實現 30 3.3.1 配置初始化 30 3.3.2 flag參數檢查 32 3.3.3 創建engine對象 33 3.3.4 設置engine的信號捕獲 34 3.3.5 加載builtins 35 3.3.6 使用goroutine加載daemon 對象并運行 38 3.3.7 打印Docker版本及驅動信息 41 3.3.8 serveapi的創建與運行 42 3.4 總結 42 第4章 Docker Daemon之NewDaemon實現 43 4.1 引言 43 4.2 NewDaemon具體實現 44 4.3 應用配置信息 45 4.3.1 配置Docker容器的MTU 45 4.3.2 檢測網橋配置信息 46 4.3.3 查驗容器間的通信配置 46 4.3.4 處理網絡功能配置 47 4.3.5 處理PID文件配置 47 4.4 檢測系統支持及用戶權限 48 4.5 配置工作路徑 49 4.6 加載并配置graphdriver 49 4.6.1 創建graphdriver 49 4.6.2 驗證btrfs與SELinux的兼容性 51 4.6.3 創建容器倉庫目錄 51 4.6.4 遷移容器至aufs類型 51 4.6.5 創建鏡像graph 52 4.6.6 創建volumesdriver以及volumes graph 53 4.6.7 創建TagStore 53 4.7 配置Docker Daemon網絡環境 54 4.7.1 創建Docker網絡設備 55 4.7.2 啟用iptables功能 55 4.7.3 啟用系統數據包轉發功能 56 4.7.4 創建DOCKER鏈 56 4.7.5 注冊處理方法至Engine 57 4.8 創建graphdb并初始化 57 4.9 創建execdriver 58 4.10 創建daemon實例 59 4.11 檢測DNS配置 60 4.12 啟動時加載已有Docker容器 61 4.13 設置shutdown的處理方法 61 4.14 返回daemon對象實例 62 4.15 總結 62 第5章 Docker Server的創建 63 5.1 引言 63 5.2 Docker Server創建流程 63 5.2.1 創建名為“serveapi”的Job 64 5.2.2 配置Job環境變量 64 5.2.3 運行Job 65 5.3 ServeApi運行流程 65 5.4 ListenAndServe實現 68 5.4.1 創建router路由實例 69 5.4.2 創建listener監聽實例 74 5.4.3 創建http.Server 74 5.4.4 啟動API服務 75 5.5 總結 75 第6章 Docker Daemon網絡 76 6.1 引言 76 6.2 Docker Daemon網絡介紹 77 6.3 Docker Daemon網絡配置接口 78 6.4 Docker Daemon網絡初始化 79 6.4.1 啟動Docker Daemon傳遞flag參數 80 6.4.2 解析網絡flag參數 80 6.4.3 預處理flag參數 80 6.4.4 確定Docker網絡模式 81 6.5 創建Docker網橋 82 6.5.1 提取環境變量 83 6.5.2 確定Docker網橋設備名 83 6.5.3 查找bridgeIface網橋設備 83 6.5.4 bridgeIface已創建 84 6.5.5 bridgeIface未創建 85 6.5.6 獲取網橋設備的網絡地址 88 6.5.7 配置Docker Daemon的iptables 88 6.5.8 配置網絡設備間數據報轉發功能 88 6.5.9 注冊網絡Handler 89 6.6 總結 89 第7章 Docker容器網絡 90 7.1 引言 90 7.2 Docker容器網絡模式 93 7.2.1 bridge橋接模式 93 7.2.2 host模式 95 7.2.3 other container模式 96 7.2.4 none模式 97 7.3 Docker Client配置容器網絡模式 97 7.3.1 使用Docker Client 98 7.3.2 runconfig包解析 98 7.3.3 CmdRun執行 102 7.4 Docker Daemon創建容器網絡流程 103 7.4.1 創建容器之網絡配置 103 7.4.2 啟動容器之網絡配置 105 7.5 execdriver網絡執行流程 111 7.5.1 創建libcontainer的Config對象 112 7.5.2 調用libcontainer的namespaces啟動容器 116 7.6 libcontainer實現內核態網絡配置 117 7.6.1 創建exec.Cmd 118 7.6.2 啟動exec.Cmd創建進程 119 7.6.3 為容器進程初始化網絡環境 120 7.7 總結 122 第8章 Docker鏡像 123 8.1 引言 123 8.2 Docker鏡像介紹 124 8.3 rootfs 124 8.4 Union Mount 125 8.5 image 127 8.6 layer 128 8.7 總結 129 第9章 Docker鏡像下載 130 9.1 引言 130 9.2 Docker鏡像下載流程 131 9.3 Docker Client 131 9.3.1 解析鏡像參數 132 9.3.2 配置認證信息 136 9.3.3 發送API請求 137 9.4 Docker Server 138 9.4.1 解析請求參數 138 9.4.2 創建并配置Job 139 9.4.3 觸發執行Job 139 9.5 Docker Daemon 140 9.5.1 解析Job參數 140 9.5.2 創建session對象 141 9.5.3 執行鏡像下載 142 9.6 總結 147 第10章 Docker鏡像存儲 149 10.1 引言 149 10.2 鏡像注冊 150 10.3 驗證鏡像ID 151 10.4 創建鏡像路徑 152 10.4.1 創建mnt、diff和layers子目錄 153 10.4.2 掛載祖先鏡像并返回根目錄 155 10.5 存儲鏡像內容 157 10.5.1 解壓鏡像內容 158 10.5.2 收集鏡像大小并記錄 160 10.5.3 存儲jsonData信息 161 10.6 注冊鏡像ID 162 10.7 總結 163 第11章 docker build實現 164 11.1 引言 164 11.2 docker build執行流程 165 11.2.1 Docker Client與docker build 166 11.2.2 Docker Server與docker build 170 11.2.3 Docker Daemon與docker build 171 11.3 Dockerfile命令解析流程 174 11.4 Dockerfile命令分析 177 11.4.1 FROM命令 177 11.4.2 RUN命令 178 11.4.3 ENV命令 182 11.5 總結 182 第12章 Docker容器創建 183 12.1 引言 183 12.2 Docker容器運行流程 184 12.3 Docker Daemon創建容器對象 185 12.3.1 LookupImage 186 12.3.2 CheckDepth 188 12.3.3 mergeAndVerifyConfig 188 12.3.4 newContainer 189 12.3.5 createRootfs 190 12.3.6 ToDisk 190 12.3.7 Register 191 12.4 Docker Daemon啟動容器 191 12.4.1 setupContainerDns 192 12.4.2 Mount 193 12.4.3 initializeNetworking 194 12.4.4 verifyDaemonSetting 194 12.4.5 prepareVolumesForContainer 195 12.4.6 setupLinkedContainers 196 12.4.7 setupWorkingDirectory 199 12.4.8 createDaemonEnvironment 199 12.4.9 populateCommand 200 12.4.10 setupMountsForContainer 200 12.4.11 waitForStart 201 12.5 總結 202 第13章 dockerinit啟動 203 13.1 引言 203 13.2 dockerinit介紹 204 13.2.1 dockerinit初始化內容 204 13.2.2 dockerinit與Docker Daemon 204 13.3 dockerinit執行入口 205 13.3.1 createCommand分析 205 13.3.2 namespace.exec 207 13.4 dockerinit運行 208 13.4.1 reexec.Init()的分析 208 13.4.2 dockerinit的執行流程 210 13.5 libcontainer的運行 211 13.5.1 Docker Daemon設置cgroups參數 213 13.5.2 Docker Daemon創建網絡棧資源 213 13.5.3 dockerinit配置網絡棧 213 13.5.4 dockerinit初始化mount namespace 215 13.5.5 dockerinit完成namespace配置 215 13.5.6 dockerinit執行用戶命令Entrypoint 217 13.6 總結 218 第14章 libcontainer介紹 219 14.1 引言 219 14.2 Docker、libcontainer以及LXC的關系 220 14.3 libcontainer模塊分析 221 14.3.1 namespace 221 14.3.2 cgroup 224 14.3.3 網絡 225 14.3.4 掛載 226 14.3.5 設備 227 14.3.6 nsinit 227 14.3.7 其他模塊 227 14.4 總結 228 第15章 Swarm架構設計與實現 229 15.1 引言 229 15.2 Swarm架構 230 15.2.1 Swarm Node 231 15.2.2 Docker Node 231 15.2.3 node discovery 231 15.2.4 scheduler 232 15.3 Swarm命令 232 15.3.1 swarm create 232 15.3.2 swarm manage 232 15.3.3 swarm join 233 15.3.4 swarm list 234 15.4 總結 234 第16章 Machine架構設計與實現 235 16.1 引言 235 16.2 Machine架構 236 16.2.1 Machine 237 16.2.2 Store 237 16.2.3 Host 237 16.2.4 Driver 238 16.2.5 Provisioner 238 16.2.6 Machine運行流程 239 16.3 Machine與Swarm的結合 240 16.4 總結 241 第17章 Compose架構設計與實現 242 17.1 引言 242 17.2 Compose介紹 242 17.3 Compose架構 243 17.4 Compose評價 246 17.4.1 Compose單機能力 246 17.4.2 Compose跨節點能力 247 17.4.3 Compose與Swarm 247 17.5 總結 247
|
序: |
|