3dwoo大學簡體電腦書店
Docker實戰(第2版)
( 簡體 字)
作者:[美]杰夫·尼克羅夫(Jeff Nickoloff),[美]斯蒂芬·庫恩斯利(Stephen Kuenzli) 著;耿蘇寧譯類別:1. -> 作業系統 -> Docker
出版社:清華大學出版社Docker實戰(第2版) 3dWoo書號: 54580
詢問書籍請說出此書號!
有庫存
NT售價: 400
出版日:3/1/2021
頁數:327
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302574675 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章歡迎來到Docker的世界1
1.1Docker是什么2
1.1.1“hello,world”示例3
1.1.2容器4
1.1.3容器不是虛擬化5
1.1.4在隔離容器中運行軟件5
1.1.5分發容器7
1.2Docker解決了什么問題7
1.2.1變得有組織性8
1.2.2改善可移植性9
1.2.3保護你的計算機10
1.3Docker為什么重要11
1.4何時、何地使用Docker12
1.5更大生態系統中的Docker13
1.6從Docker命令行獲取幫助14
1.7本章小結14
第Ⅰ部分進程隔離與環境獨立計算
第2章在容器中運行軟件19
2.1控制容器:構建網站監視器19
2.1.1創建和啟動新容器20
2.1.2運行交互式容器22
2.1.3羅列、停止、重啟和查看容器的輸出23
2.2被解決的問題和PID命名空間25
2.3消除元數據沖突:建立網站農場28
2.3.1靈活的容器識別29
2.3.2容器的狀態和依存關系32
2.4構建與環境無關的系統35
2.4.1只讀文件系統35
2.4.2注入環境變量39
2.5建立持久的容器42
2.5.1自動重啟容器43
2.5.2使用PID1和init系統44
2.6清除工作46
2.7本章小結48
第3章使用Docker安裝軟件49
3.1識別軟件50
3.1.1命名倉庫是什么50
3.1.2使用標簽51
3.2尋找和安裝軟件52
3.2.1從命令行使用Docker注冊表52
3.2.2使用備用的注冊表53
3.2.3將鏡像作為文件處理54
3.2.4從Dockerfile進行安裝55
3.2.5使用DockerHub56
3.3安裝文件和隔離58
3.3.1實際的鏡像層級58
3.3.2層級的關系60
3.3.3容器文件系統的抽象和隔離61
3.3.4這一工具集和聯合文件系統結構的優點62
3.3.5聯合文件系統的缺點62
3.4本章小結63
第4章使用存儲和卷65
4.1文件樹和掛載點66
4.2綁定掛載67
4.3常駐內存存儲70
4.4Docker卷71
4.4.1卷提供容器無關的數據管理73
4.4.2在NoSQL數據庫中使用卷74
4.5共享掛載點和共享文件77
4.6清理卷81
4.7使用卷插件的高級存儲83
4.8本章小結83
第5章單主機網絡85
5.1網絡背景(面向初學者)85
5.1.1基本知識:協議、接口和端口86
5.1.2深入知識:網絡、NAT和端口轉發87
5.2Docker容器網絡88
5.2.1創建用戶自定義的橋接網絡89
5.2.2探索橋接網絡91
5.2.3更多網絡類型94
5.3特殊容器網絡:主機網絡和none網絡95
5.4使用NodePortpublishing處理入站流量96
5.5容器網絡注意事項和定制化98
5.5.1沒有防火墻或網絡策略98
5.5.2自定義DNS配置99
5.5.3外部化網絡管理103
5.6本章小結104
第6章通過資源控制來限制風險105
6.1設置資源配額106
6.1.1內存限制106
6.1.2CPU108
6.1.3訪問設備111
6.2共享內存111
6.3理解用戶114
6.3.1使用運行時用戶114
6.3.2用戶和卷117
6.3.3用戶命名空間和UID重映射119
6.4根據功能集調整操作系統功能訪問范圍121
6.5以完全特權運行容器123
6.6使用增強的工具加固容器124
6.7構建適合用例的容器126
6.7.1應用程序127
6.7.2高層的系統服務127
6.7.3低層的系統服務128
6.8本章小結128
第Ⅱ部分打包軟件進行分發
第7章將軟件打包到鏡像中133
7.1從容器構建鏡像133
7.1.1打包“hello,world”程序134
7.1.2準備打包Git程序135
7.1.3查看文件系統的更改項136
7.1.4提交新的鏡像137
7.1.5配置鏡像屬性138
7.2深入研究Docker鏡像和層級140
7.2.1探索聯合文件系統140
7.2.2重新認識鏡像、層級、倉庫和標簽143
7.2.3管理鏡像大小和層級的限制146
7.3導出和導入平面文件系統148
7.4版本控制的最佳實踐151
7.5本章小結153
第8章使用Dockerfile自動構建鏡像155
8.1使用Dockerfile打包Git程序155
8.2Dockerfile入門160
8.2.1元數據指令160
8.2.2文件系統指令165
8.3在構建下游層級時注入行為169
8.4創建可維護的Dockerfile172
8.5使用啟動腳本和多進程容器177
8.5.1驗證前提條件177
8.5.2初始化進程179
8.5.3健康檢查的目的和用途180
8.6構建加固的應用程序鏡像182
8.6.1內容可尋址鏡像標識符183
8.6.2用戶權限183
8.6.3SUID和SGID權限186
8.7本章小結188
第9章公共和私有軟件分發191
9.1選擇分發方法191
9.1.1鏡像分發頻譜192
9.1.2選擇標準192
9.2在托管注冊表中發布鏡像195
9.2.1在DockerHub的公共倉庫中發布鏡像195
9.2.2私有托管倉庫198
9.3引入私有注冊表200
9.3.1使用注冊表鏡像202
9.3.2從注冊表中消費鏡像204
9.4手動發布和分發鏡像205
9.5鏡像源代碼分發流程211
9.6本章小結213
第10章鏡像構建管道215
10.1鏡像構建管道的目標215
10.2構建鏡像的模式217
10.2.1多合一鏡像217
10.2.2分離構建時和運行時鏡像218
10.2.3通過多階段構建來更改運行時鏡像220
10.3在構建鏡像時記錄元數據222
10.4在鏡像構建管道中測試鏡像229
10.5標記鏡像的模式232
10.5.1背景232
10.5.2帶有唯一標簽的持續交付233
10.5.3帶有具體環境工件的持續交付233
10.5.4語義版本控制235
10.6本章小結236
第Ⅲ部分更高層次的抽象與編排
第11章Docker和Compose服務239
11.1“HelloWorld!”服務240
11.1.1自動復活和復制242
11.1.2自動推出244
11.1.3服務運行狀況與回滾246
11.2使用ComposeV3的聲明式服務環境249
11.2.1YAML入門251
11.2.2ComposeV3的服務集合253
11.3帶有狀態的服務和保留的數據258
11.4使用Compose進行負載均衡、服務發現和聯網260
11.5本章小結264
第12章一流的配置265
12.1配置的分發和管理266
12.2分離應用程序和配置267
12.2.1使用配置資源270
12.2.2部署應用程序271
12.2.3直接管理配置資源273
12.3一種特殊的配置:機密信息277
12.4本章小結285
第13章使用Swarm在Docker主機集群上編排服務287
13.1使用DockerSwarm集群287
13.1.1DockerSwarm模式介紹288
13.1.2部署Swarm集群289
13.2將應用程序部署到Swarm集群290
13.2.1DockerSwarm集群資源類型介紹290
13.2.2使用Docker服務定義應用程序及其依賴項291
13.2.3部署應用程序297
13.3與Swarm集群內運行的服務通信303
13.3.1使用Swarm路由網格將客戶端請求路由到服務304
13.3.2使用覆蓋網絡306
13.3.3在覆蓋網絡上發現服務307
13.3.4在覆蓋網絡上隔離服務之間的通信310
13.3.5負載均衡312
13.4將服務任務放置在集群中313
13.4.1復制服務314
13.4.2約束任務的運行位置318
13.4.3使用全局服務方式在每個節點上部署一個任務325
13.4.4將真實的應用程序部署到真實的集群中326
13.5本章小結327
《 Docker實戰(第2版)》聚焦于創建、部署和管理運行在Linux操作系統上的Docker容器中的應用程序。本書對內容做了全面更新,新增了4章,修訂了更佳實踐和示例。書中首先對Docker模型做了清晰解釋,然后開始打包應用程序,安全地測試、安裝和運行應用程序,并將它們部署到主機集群中。本書通過示例展示了Docker如何使整個開發生命周期受益,讀者將學到從開發、測試機器到進行全面云部署的各種技術。
主要內容
在容器中運行軟件
為更好地部署而打包軟件
安全和分發容器化應用程序
自從我們于2013年開始參與以來,Docker和容器社區已經走過很長一段路。自2016年Jeff寫作《Docker實戰(第2版)》的第1版以來,Docker發生了一些意想不到的變化。值得慶幸的是,大多數面向用戶的接口和核心概念都以向后兼容的方式向前演進著。《Docker實戰(第2版)》的前三分之二部分針對新增功能或已解決的問題進行了更新。正如預期的那樣,上一版的第Ⅲ部分則需要完全重寫。自從本書的第1版出版以來,Docker已經在容器的編排、應用程序的連接、專有云容器產品、多容器應用打包和功能服務化平臺等方面取得很大的進展。本書的第2版重點介紹Docker容器的基本概念和實踐,并避開講解對于Docker來說過于快速變化的技術。
Docker最大的變化是開發和使用了幾個容器協調器。容器協調器的主要目的是跨主機集群運行應用程序服務。這些容器協調器中最著名的Kubernetes已經在業界得到廣泛采用,并得到幾乎所有主要技術供應商的支持。Cloud Native Computing Foundation是圍繞Kubernetes項目成立的基金會,該基金會會做很多與Kubernetes相關的定制化項目,例如,可以將云原生的應用程序重新設計為適合在Kubernetes平臺上部署。但重要的是,不要太關注市場營銷或特定的容器編排技術。
《Docker實戰(第2版)》不涵蓋Kubernetes的介紹,原因有兩個。
首先,盡管Kubernetes隨Docker for Desktop一起提供,但它的體積十分龐大且在不斷變化。在短短幾章或一本少于400頁的書中,都不太可能提供關于這個主題任何有深度的闡述。同時,關于Kubernetes有大量優秀的在線資源和專業書籍。我們希望《Docker實戰(第2版)》專注于一個更大的主題——服務編排,而不是在瑣碎的地方花費大量精力。
其次,Docker附帶了Swarm集群和編排工具。對于較小的或邊緣計算環境中的集群,Docker已綽綽有余。大量組織每天都在愉快地使用Swarm,而Swarm非常適合同時開始服務編排和容器開發的初學者。大多數工具和方案都可以簡單地從容器轉移到服務模式,應用程序開發人員有可能從這種方法中受益,而系統管理員或集群操作人員則可能感到失望。
Docker的下一個最大的變化是:Docker如今無處不在。Docker for Desktop已經很好地集成在了蘋果和微軟公司的操作系統中。它向用戶隱藏了底層虛擬機的工作機制,在大多數情況下,這是一項成功的舉措。在macOS操作系統中,用戶體驗非常流暢;而在Windows操作系統中,至少在某些時刻也運行良好。Windows用戶需要處理來自公司防火墻、激進的防病毒配置、shell程序選項和通過好幾層網絡進行間接訪問的大量配置的變化,而這些變化使得在Windows操作系統中交付書面的配置內容變得異常困難,導致這樣做的任何嘗試都會在實際進入生產系統之前被淘汰。因此,我們再次將《Docker實戰(第2版)》的語法和系統相關材料限定為針對Linux和macOS操作系統。讀者可能發現所有示例實際上能夠在這些環境中運行,但我們不能保證它們肯定能夠運行或者可以合理地指導故障排除工作。
后來,獲得安裝了Docker的可連接Internet的虛擬機變得微不足道了,每個主流的甚至小型的云服務提供商都提供這些服務。因此,我們刪除了與Docker機器和安裝Docker有關的材料。相信讀者完全能夠找到最適合自己平臺的Docker安裝說明。如今,讀者可以直接選擇一種容器優先的云平臺,如AWS ECS。《Docker實戰(第2版)》不會介紹這些平臺,因為它們都非常獨特,難以在《Docker實戰(第2版)》中詳細討論。不過這些平臺都有完善的方案和文檔,讀者可以自行搜索相關資料。
最后,容器和網絡都擁有復雜的歷史。在過去幾年里,隨著服務網格平臺和其他補充技術突然出現,容器和網絡之間的交互變得更復雜了。服務網格是可感知應用程序的智能管道的平臺,可提供微服務網絡最佳實踐,它們使用代理來提供點對點加密、身份驗證、授權、斷路器和高級請求路由技術。《Docker實戰(第2版)》介紹的容器網絡基礎知識被證明對理解和評估服務網格技術很有用。
《Docker實戰(第2版)》旨在深入介紹Docker的基礎知識。讀者可能無法在日常應用這項技術的過程中學到所有需要的知識,但是只要掌握《Docker實戰(第2版)》介紹的基礎知識和技能,就可以更快地學習高級主題并追求更高的目標。祝你在探索容器的征程中一路順風!
pagetop