瀏覽紀錄

TOP
【反詐騙】接到可疑電話該怎麼辦?提醒您「不碰不說」。聽到「訂單錯誤要操作ATM/網銀就是詐騙」!
1/1
庫存:3
Docker實踐(第2版)(簡體書)
人民幣定價:99元
定  價:NT$594元
優惠價: 75446
可得紅利積點:13 點

庫存:3

商品簡介

作者簡介

名人/編輯推薦

目次

本書由淺入深地講解了Docker的相關內容,涵蓋從開發環境到DevOps流水線,再一路到生產環境的整個落地過程以及相關的實用技巧。書中介紹Docker的核心概念和架構,以及將Docker和開發環境有機、高效地結合起來的方法,包括背Docker用作輕量級虛擬機、構建容器、宿主機編排、配置管理、精簡鏡像等。不僅如此,本書還通過“問題-解決方案-討論”的形式,將Docker如何融入DevOps流水線、如何在生產環境落地等一系列難題拆解成114個相關的實用技巧,為讀者提供解決方案以及一些細節和技巧方面的實踐經驗。閱讀本書,讀者學到的不只是Docker,還包括持續集成、持續交付、構建和鏡像管理、容器編排等相關領域的一線生產經驗。本書編寫時一些案例參考的Docker版本是Docker 1.13。
本書要求讀者具備一定的容器管理和運維的基礎知識,適合想要將Docker投入實踐的相關技術人員閱讀,尤其適合具有中高級DevOps和運維背景的讀者閱讀。
伊恩·米爾(Ian Miell),巴克萊的首席OpenShift架構師,也是一位經驗豐富的軟件工程師,他是公司中首位發現Docker潛力的人,並且在Docker生態系統中創建了他自己的工具。

艾丹·霍布森·塞耶斯(Aidan Hobson Sayers),對Docker實踐的細節有濃厚的興趣,他經常分析Docker源代碼。他和Ian都為Docker的發展貢獻了自己的一份力量,對在商業壓力開發環境中構建和維護Docker基礎設施有著豐富的經驗。



譯者簡介

楊銳,前ThoughtWorks諮詢師,DevOps領域持續關注者,曾任某海外大型項目DevOps工程師,對其持續交付、基礎設施即代碼、流水線即代碼等方面進行了持續推動,對雲計算、容器化和持續交付等有一定經驗。現供職美團點評。

吳佳興,畢業於華東理工大學計算機系,主要研究方向有運維自動化、雲原生基礎設施建設和混沌工程等。2014年年底有幸加入DockOne社區,作為譯者,利用閒暇時間為社區貢獻一些微薄的力量。歡迎郵件聯繫(wjx_colstu@hotmail.com)。

梁曉勇,畢業於廈門大學,現任齊家網技術總監,DockOne社區編外人員。長期奮戰在技術研發第一線,在網絡管理、技術開發、架構設計等方面略有心得。熱愛互聯網技術,積極投身開源社區,對Docker等容器技術具有濃厚興趣。歡迎郵件聯繫(sunlxy@yahoo.com)。

黃博文,ThoughtWorks資深軟件工程師/諮詢師,擁有豐富的敏捷團隊工作經驗。目前專注於DevOps技術及雲端架構,在搭建持續集成及部署平臺、自動化構建基礎設施、虛擬化環境以及雲端運維等方面有著豐富的經驗。擁有AWS解決方案架構師以及開發者證書。譯作有《Effective JavaScript》《響應式Web設計:HTML5和CSS3實踐指南》《C#多線程編程實戰》等。個人郵箱為huangbowen521@gmail.com。
1.暢銷Docker容器實踐教程升級版,編寫時參考的Docker版本是Docker 1.13;
2.114個實戰技巧為讀者提供解決方案以及一些細節和技巧方面的實踐經驗;
3.提供配套源代碼下載。

本書詳細介紹了一些堅實可靠的、經過檢驗的Docker技術,如替換虛擬機(VM)、啟用微服務架構、高效網絡建模、離線生產和建立容器驅動的持續交付過程等,讓開發人員能夠按照手冊風格的“問題-解決方案-討論”模式探索真實案例,並學習如何將這些經驗應用到自己的開發項目中。

本書主要內容:
持續集成和交付。
Kubernetes編排工具。
精簡雲工作流。
swarm集群模式下的Docker。
新興的最佳實踐和技巧。

本書是專門寫給在生產環境中使用Docker的開發人員和工程師的。
作者伊恩·米爾(Ian Miell)和艾丹·霍布森·塞耶斯(Aidan Hobson Sayers)都是經驗豐富的基礎設施架構師。他們一起使用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

購物須知

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約20個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。