Docker 實踐 Docker实践
[美] 伊恩·米爾 艾丹·霍布森·塞耶斯
- 出版商: 人民郵電
- 出版日期: 2018-02-01
- 定價: $474
- 售價: 8.5 折 $403
- 語言: 簡體中文
- 頁數: 314
- 裝訂: 平裝
- ISBN: 7115474583
- ISBN-13: 9787115474582
-
相關分類:
Docker
- 此書翻譯自: Docker in Practice (Paperback)
-
其他版本:
Docker 實踐, 2/e
買這商品的人也買了...
-
$1,200$948 -
$403Docker 進階與實戰
-
$580$458 -
$403Docker 實戰
-
$250命令行中的數據科學 (Data Science at the Command Line:Facing the Future with Time-Tested Tools)
-
$480$379 -
$505億級流量網站架構核心技術 — 跟開濤學搭建高可用高並發系統
-
$450$356 -
$265Web API 的設計與開發 (Web API : the Good Parts)
-
$607Kubernetes 權威指南 : 從 Docker 到 Kubernetes 實踐全接觸 (紀念版)
-
$450$383 -
$780$616 -
$450$356 -
$500$390 -
$403Vue.js 實戰
-
$352Mesos 實戰
-
$301代碼管理核心技術及實踐
-
$380$300 -
$680$578 -
$580$452 -
$520$411 -
$580$493 -
$480$360 -
$454Kubernetes 權威指南 — 企業級容器雲實戰
-
$352深入淺出Docker
相關主題
商品描述
《Docker實踐》由淺入深地講解了Docker的相關內容,涵蓋從開發環境到DevOps流水線,再一路到生產環境的整個落地過程以及相關的實用技巧。書中介紹Docker的核心概念和架構,以及將Docker和開發環境有機、高效地結合起來的方法,包括用作輕量級的虛擬機以及構建和宿主機編排、配置管理、精簡鏡像等。不僅如此,本書還通過“問題/解決方案/討論”的形式,將“Docker如何融入DevOps流水線”“如何在生產環境落地”等一系列難題拆解成101個相關的實用技巧,為讀者提供解決方案以及一些細節和技巧方面的實踐經驗。閱讀本書,讀者將學到的不只是Docker,還包括持續集成、持續交付、構建和鏡像管理、容器編排等相關領域的一線生產經驗。本書編寫時一些案例參考的Docker版本是Docker 1.9。
《Docker實踐》要求讀者具備一定的容器管理和運維的基礎知識,適合想要將Docker投入實踐的相關技術人員閱讀,尤其適合具有中 高 級DevOps和運維背景的讀者閱讀。
作者簡介
[美]伊恩·米爾(Ian Miell)艾丹·霍布森·塞耶斯(Aidan Hobson Sayers) 譯者:吳佳興、梁曉勇、黃博文、楊銳
伊恩·米爾(Ian Miell)和艾丹·霍布森·塞耶斯(Aidan HobsonSayers)對Docker有所貢獻,並且在大規模環境裡構建和維護基於Docker的基礎設施方面有豐富的經驗。
目錄大綱
第一部分Docker基礎
第1章Docker初探3
1.1 Docker是什麼以及為什麼用Docker 4
1.1.1 Docker是什麼4
1.1.2 Docker有什麼好處6
1.1.3關鍵的概念8
1.2構建一個Docker應用程序10
1.2. 1創建新的Docker鏡像的方式11
1.2.2編寫一個Dockerfile 11
1.2.3構建一個Docker鏡像12
1.2.4運行一個Docker容器14
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移動到不同分區24
2.3 Docker客戶端25
技巧4使用socat監控Docker API流量25
技巧5使用端口連接容器28
技巧6鏈接容器實現端口隔離29
技巧7在瀏覽器中使用Docker 31
2.4 Docker註冊中心33
技巧8建立一個本地Docker註冊中心34
2.5 Docker Hub 34
技巧9查找並運行一個Docker鏡像35
2.6小結37
第二部分Docker與開發
第3章將Docker用作輕量級虛擬機41
3.1從虛擬機到容器42
技巧10將虛擬機轉換為容器42
技巧11類宿主機容器44
技巧12將一個系統拆成微服務容器46
3.2管理容器的服務49
技巧13管理容器內服務的啟動50
3.3保存和還原工作成果52
技巧14在開發中“保存遊戲”的方式52
技巧15給Docker打標籤54
技巧16在Docker Hub上分享鏡像56
技巧17在構建時指向特定的鏡像58
3.4進程即環境59
技巧18在開發中“保存遊戲”的方式59
3.5小結61
第4章Docker日常62
4.1卷——持久化問題62
技巧19 Docker卷——持久化的問題63
技巧20通過BitTorrent Sync的分佈式捲64
技巧21保留容器的bash歷史66
技巧22數據容器68
技巧23使用SSHFS掛載遠程卷70
技巧24通過NFS共享數據72
技巧25開發工具容器75
4.2運行容器76
技巧26在Docker裡運行GUI 76
技巧27檢查容器78
技巧28乾淨地殺掉容器80
技巧29使用Docker Machine來置備Docker宿主機81
4.3構建鏡像84
技巧30使用ADD將文件注入到鏡像85
技巧31重新構建時不使用緩存87
技巧32拆分緩存89
4.4保持陣型90
技巧33運行Docker時不加sudo 90
技巧34清理容器91
技巧35清理卷92
技巧36解綁容器的同時不停掉它94
技巧37使用DockerUI來管理Docker守護進程95
技巧38為Docker鏡像生成一個依賴圖96
技巧39直接操作——對容器執行命令97
4.5小結99
第5章配置管理——讓一切井然有序100
5.1配置管理和Dockerfile 100
技巧40使用ENTRYPOINT創建可靠的定制工具101
技巧41在構建中指定版本來避免軟件包的漂移102
技巧42用perl -p -i -e替換文本104
技巧43鏡像的扁平化105
技巧44用alien管理外來軟件包107
技巧45把鏡像逆向工程得到Dockerfile 109
5.2傳統配置管理工具與Docker 112
技巧46傳統方式:搭配make和Docker 112
技巧47借助Chef Solo構建鏡像114
技巧48從源到鏡像的構建118
5.3小即是美123
技巧49保持構建鏡像更小的Dockerfile技巧123
技巧50讓鏡像變得更小的技巧126
技巧51通過BusyBox和Alpine來精簡Docker鏡像128
技巧52 Go模型的小容器129
技巧53使用inotifywait給容器瘦身132
技巧54大也可以美134
5.4小結136
第三部分Docker與DevOps
第6章持續集成:加快開發流水線139
6.1 Docker Hub自動化構建139
技巧55使用Docker Hub工作流140
6.2更有效的構建143
技巧56使用eatmydata為I/O密集型構建提速143
技巧57設置一個軟件包緩存用於加快構建速度145
技巧58在Docker內部運行Selenium測試147
6.3容器化CI過程151
技巧59包含一個複雜的開發環境151
技巧60在一個Docker容器裡運行Jenkins主服務器156
技巧61使用Jenkins的Swarm插件擴展CI 158
6.4小結161
第7章持續交付:與Docker原則完美契合162
7.1在CD流水線上與其他團隊互動163
技巧62 Docker契約——減少摩擦163
7.2推動Docker鏡像的部署165
技巧63手動同步註冊中心鏡像165
技巧64通過受限連接交付鏡像166
技巧65以TAR文件方式共享Docker對象168
7.3為不同環境配置鏡像170
技巧66使用etcd通知容器170
7.4升級運行中的容器172
技巧67使用confd啟用零停機時間切換173
7.5小結177
第8章網絡模擬:無痛的現實環境測試178
8.1容器通信——超越手工鏈接178
技巧68一個簡單的Docker Compose集群178
技巧69一個使用Docker Compose的SQLite服務器182
技巧70使用Resolvable通過DNS查找容器185
8.2使用Docker來模擬真實世界的網絡188
技巧71使用Comcast模擬有問題的網絡188
技巧72使用Blockade模擬有問題的網絡191
8.3 Docker和虛擬網絡194
技巧73使用Weave建立一個基底 絡195
技巧74 Docker的網絡與服務功能198
8.4小結201
第四部分生產環境中的Docker
第9章容器編排:管理多個Docker容器205
9.1簡單的單台宿主機206
技巧75使用systemd管理宿主機上的容器206
技巧76使用systemd編排宿主機上的容器210
9.2多宿主機Docker 212
技巧77使用Helios手動管理多宿主機Docker 213
技巧78基於Swarm的無縫Docker集群219
技巧79使用Kubernetes集群222
技巧80在Mesos上構建框架228
技巧81使用Marathon細粒度管理Mesos 235
9.3服務發現:我們有什麼238
技巧82使用Consul來發現服務238
技巧83使用Registrator進行自動化服務註冊246
9.4小結248
第10章Docker與安全249
10.1 Docker訪問權限及其意味著什麼249
10.2 Docker中的安全手段250
技巧84限制能力251
技巧85 Docker實例上的HTTP認證253
技巧86保護Docker API 257
10.3來自Docker以外的安全260
技巧87 OpenShift——一個應用程序平台即服務260
技巧88使用安全選項269
10.4小結275
第11章一帆風順——生產環境中的Docker以及運維上的考量276
11.1監控276
技巧89記錄容器的日誌到宿主機的syslog 276
技巧90把Docker日誌發送到宿主機的輸出系統279
技巧91使用cAdvisor監控容器281
11.2資源控制282
技巧92限制容器可以運行的內核282
技巧93給重要的容器更多CPU 283
技巧94限制容器的內存使用285
11.3 Docker的系統管理員用例286
技巧95使用Docker來運行cron作業286
技巧96通過“保存遊戲”的方法來備份289
11.4小結291
第12章Docker生產環境實踐——應對各項挑戰292
12.1性能——不能忽略宿主機292
技巧97從容器訪問宿主機資源292
技巧98 Device Mapper存儲驅動和默認的容器大小296
12.2在容器出問題時——調試Docker 298
技巧99使用nsenter調試容器的網絡298
技巧100無須重新配置,使用tcpflow進行實 調試301
技巧101調試在特定宿主機上出問題的容器302
12.3小結306
附錄A安裝並使用Docker 307
附錄B Docker配置311
附錄C Vagrant 313