|
-- 會員 / 註冊 --
|
|
|
|
Docker實踐 第2版 ( 簡體 字) |
作者:[英]伊恩·米爾(Ian Miell) | 類別:1. -> 作業系統 -> Docker |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 53520 詢問書籍請說出此書號!【缺書】 NT售價: 495 元 |
出版日:10/1/2020 |
頁數:400 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115541109 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書由淺入深地講解了Docker的相關內容,涵蓋從開發環境到DevOps流水線,再一路到生產環境的整個落地過程以及相關的實用技巧。書中介紹Docker的核心概念和架構,以及將Docker和開發環境有機、高效地結合起來的方法,包括背Docker用作輕量級虛擬機、構建容器、宿主機編排、配置管理、精簡鏡像等。不僅如此,本書還通過“問題-解決方案-討論”的形式,將Docker如何融入DevOps流水線、如何在生產環境落地等一系列難題拆解成114個相關的實用技巧,為讀者提供解決方案以及一些細節和技巧方面的實踐經驗。閱讀本書,讀者學到的不只是Docker,還包括持續集成、持續交付、構建和鏡像管理、容器編排等相關領域的一線生產經驗。本書編寫時一些案例參考的Docker版本是Docker 1.13。 本書要求讀者具備一定的容器管理和運維的基礎知識,適合想要將Docker投入實踐的相關技術人員閱讀,尤其適合具有中高級DevOps和運維背景的讀者閱讀。 |
目錄:第一部分 Docker基礎 第1章 Docker初探 3 1.1 Docker是什么以及為什么用Docker 4 1.1.1 Docker是什么 4 1.1.2 Docker有什么好處 6 1.1.3 關鍵的概念 7 1.2 構建一個Docker應用程序 9 1.2.1 創建新的Docker鏡像的方式 10 1.2.2 編寫一個Dockerfile 11 1.2.3 構建一個Docker鏡像 12 1.2.4 運行一個Docker容器 13 1.2.5 Docker分層 16 1.3 小結 17 第2章 理解Docker——深入引擎室 18 2.1 Docker的架構 18 2.2 Docker守護進程 20 技巧1 向世界開放Docker守護進程 20 技巧2 以守護進程方式運行容器 22 技巧3 將Docker移動到不同分區 25 2.3 Docker客戶端 26 技巧4 使用socat監控Docker API流量 26 技巧5 在瀏覽器中使用Docker 29 技巧6 使用端口連接容器 31 技巧7 允許容器通信 33 技巧8 鏈接容器實現端口隔離 34 2.4 Docker注冊中心 36 技巧9 建立一個本地Docker注冊中心 37 2.5 Docker Hub 38 技巧10 查找并運行一個Docker鏡像 39 2.6 小結 41 第二部分 Docker與開發 第3章 將Docker用作輕量級虛擬機 45 3.1 從虛擬機到容器 46 技巧11 將虛擬機轉換為容器 46 技巧12 類宿主機容器 49 技巧13 將一個系統拆成微服務容器 51 技巧14 管理容器內服務的啟動 54 3.2 保存和還原工作成果 57 技巧15 “保存游戲”的方式:廉價的源代碼管理 57 技巧16 給Docker打標簽 59 技巧17 在Docker Hub上分享鏡像 62 技巧18 在構建時指向特定的鏡像 64 3.3 進程即環境 65 技巧19 “保存游戲”的方式:在2048里獲勝 65 3.4 小結 67 第4章 構建鏡像 68 4.1 構建鏡像 68 技巧20 使用ADD指令將文件注入鏡像里 68 技巧21 不帶緩存的重新構建 71 技巧22 清除緩存 73 技巧23 使用build-args實現智能的緩存清除 74 技巧24 使用ADD指令實現智能的緩存清除 78 技巧25 在容器里設置正確的時區 81 技巧26 語言環境管理 83 技巧27 image-steper遍歷鏡像分層 86 技巧28 ONBUILD指令和golang 90 4.2 小結 93 第5章 運行容器 94 5.1 運行容器 94 技巧29 在Docker里運行GUI 94 技巧30 檢查容器 97 技巧31 干凈地“殺死”容器 98 技巧32 使用Docker Machine置備Docker宿主機 100 技巧33 帶通配符的DNS 104 5.2 卷——持久化問題 105 技巧34 Docker卷——持久化的問題 105 技巧35 通過Resilio Sync 實現的分布式卷 107 技巧36 保留容器的bash歷史 109 技巧37 數據容器 111 技巧38 使用SSHFS掛載遠程卷 113 技巧39 通過NFS共享數據 115 技巧40 開發工具容器 118 5.3 小結 119 第6章 Docker日常 120 6.1 保持陣型 120 技巧41 運行Docker時不加sudo 120 技巧42 清理容器 121 技巧43 清理卷 123 技巧44 無須停止容器,從容器里解綁 125 技巧45 使用Portainer來管理Docker守護進程 125 技巧46 生成Docker鏡像的依賴圖 126 技巧47 直接行動:在容器上執行命令 129 技巧48 你在容器里嗎 130 6.2 小結 131 第7章 配置管理,讓一切井然有序 132 7.1 配置管理和Dockerfile 132 技巧49 使用ENTRYPOINT創建可靠的定制工具 133 技巧50 在構建中指定版本來避免軟件包的漂移 134 技巧51 用perl -p -i -e替換文本 136 技巧52 鏡像的扁平化 138 技巧53 用Alien管理外來軟件包 140 7.2 傳統配置管理工具與Docker 142 技巧54 傳統方式:搭配make和Docker 142 技巧55 借助Chef Solo構建鏡像 145 7.3 小即是美 149 技巧56 讓鏡像變得更小的技巧 149 技巧57 通過BusyBox和Alpine精簡Docker鏡像 151 技巧58 Go模型的最小容器 153 技巧59 使用inotifywait給容器瘦身 156 技巧60 大也可以美 159 7.4 小結 161 第三部分 Docker與DevOps 第8章 持續集成:加快開發流水線 165 8.1 Docker Hub自動化構建 165 技巧61 使用Docker Hub工作流 166 8.2 更有效的構建 169 技巧62 使用eatmydata為I/O密集型構建提速 169 技巧63 設置一個軟件包緩存用于加快構建速度 171 技巧64 容器里的無頭Chrome 174 技巧65 在Docker內部運行Selenium測試 176 8.3 容器化CI過程 181 技巧66 在一個Docker容器里運行Jenkins主服務器 181 技巧67 包含一個復雜的開發環境 183 技巧68 使用Jenkins的Swarm插件擴展CI 188 技巧69 安全地升級容器化Jenkins服務器 191 8.4 小結 195 第9章 持續交付:與Docker原則完美契合 196 9.1 在CD流水線上與其他團隊互動 197 技巧70 Docker契約:減少摩擦 197 9.2 推動Docker鏡像的部署 199 技巧71 手動同步注冊中心鏡像 200 技巧72 通過受限連接交付鏡像 201 技巧73 以TAR文件方式共享Docker對象 203 9.3 為不同環境配置鏡像 205 技巧74 使用etcd通知容器 205 9.4 升級運行中的容器 208 技巧75 使用confd啟用零停機時間切換 209 9.5 小結 213 第10章 網絡模擬:無痛的現實環境測試 214 10.1 容器通信:超越手工鏈接 214 技巧76 一個簡單的Docker Compose集群 214 技巧77 一個使用Docker Compose的SQLite服務器 218 10.2 使用Docker模擬真實世界的網絡 222 技巧78 使用Comcast模擬有問題的網絡 223 技巧79 使用Blockade模擬有問題的網絡 226 10.3 Docker和虛擬網絡 230 技巧80 創建另一個Docker虛擬網絡 231 技巧81 使用Weave建立一個基底網絡 234 10.4 小結 237 第四部分 從單機到云的編排 第11章 容器編排入門 241 11.1 簡單的單臺宿主機 242 技巧82 使用systemd管理宿主機上的容器 242 技巧83 編排宿主機上的容器的啟動 246 11.2 手動多宿主機Docker 249 技巧84 使用Helios手動管理多宿主機Docker 249 11.3 服務發現:我們有什么 254 技巧85 使用Consul發現服務 255 技巧86 使用Registrator進行自動化服務注冊 262 11.4 小結 264 第12章 使用Docker實現數據中心即操作系統 265 12.1 多宿主機Docker 265 技巧87 swarm模式的無縫Docker集群 265 技巧88 使用Kubernetes集群 269 技巧89 在pod內訪問Kubernetes API 274 技巧90 使用OpenShift在本地運行AWS API 277 技巧91 在Mesos上構建框架 283 技巧92 使用Marathon細粒度管理Mesos 290 12.2 小結 293 第13章 Docker平臺 294 13.1 組織選擇的因素 295 13.1.1 投放到市場的時間 297 13.1.2 購買與構建 297 13.1.3 單體與零散 298 13.1.4 開源與授權 299 13.1.5 安全態度 299 13.1.6 消費者獨立性 300 13.1.7 云策略 300 13.1.8 組織結構 300 13.1.9 多平臺? 300 13.1.10 組織選擇因素結論 301 13.2 采用Docker時需要考慮的方面 301 13.2.1 安全與控制 301 13.2.2 構建和分發鏡像 307 13.2.3 運行容器 309 13.3 供應商、組織和產品 311 13.3.1 云原生計算基金會(CNCF) 311 13.3.2 Docker公司 313 13.3.3 谷歌 313 13.3.4 微軟 313 13.3.5 亞馬遜 314 13.3.6 Red Hat 314 13.4 小結 315 第五部分 生產環境中的Docker 第14章 Docker與安全 319 14.1 Docker訪問權限及其意味著什么 319 你在乎嗎 320 14.2 Docker中的安全手段 320 技巧93 限制能力 321 技巧94 掃描一個“壞”Docker鏡像 324 14.3 保衛對于Docker的使用 325 技巧95 Docker實例上的HTTP認證 326 技巧96 保護Docker API 329 14.4 Docker外部的安全性 333 技巧97 使用DockerSlim來減少容器攻擊者的攻擊面 333 技巧98 去除在構建中加入的密碼 338 技巧99 OpenShift—— 一個應用程序平臺即服務 342 技巧100 使用安全選項 350 14.5 小結 357 第15章 一帆風順:在生產環境中運行Docker 358 15.1 監控 358 技巧101 記錄容器的日志到宿主機的syslog 358 技巧102 記錄Docker日志的輸出 361 技巧103 使用cAdvisor監控容器 363 15.2 資源控制 365 技巧104 限制容器可以運行的內核 365 技巧105 給重要的容器更多CPU 366 技巧106 限制容器的內存使用 367 15.3 Docker的系統管理員用例 369 技巧107 使用Docker運行cron作業 369 技巧108 通過“保存游戲”的方法來備份 372 15.4 小結 374 第16章 Docker生產環境實踐——應對各項挑戰 375 16.1 性能:不能忽略宿主機 375 技巧109 從容器訪問宿主機資源 375 技巧110 禁用內存溢出殺手 379 16.2 在容器出問題時——調試Docker 381 技巧111 使用nsenter調試容器的網絡 381 技巧112 無須重新配置,使用tcpflow進行實時調試 384 技巧113 調試在特定宿主機上出問題的容器 386 技巧114 從鏡像中提取文件 389 16.3 小結 391 附錄A 安裝并使用Docker 392 A.1 虛擬機的方式 392 A.2 連接到外部Docker服務器的Docker客戶端 393 A.3 原生Docker客戶端和虛擬機 393 Windows上的Docker 393 A.4 獲得幫助 395 附錄B Docker配置 396 B.1 配置Docker 396 B.2 重啟Docker 397 B.2.1 使用systemctl重啟 397 B.2.2 重啟服務 398 附錄C Vagrant 399 C.1 設置 399 C.2 圖形用戶界面 399 C.3 內存 400 |
序: |
|