Docker開發指南

Docker開發指南 pdf epub mobi txt 電子書 下載 2025

[英] 阿德裏安·莫阿特(Adrian Mouat) 著,黃彥邦 譯
圖書標籤:
  • Docker
  • 容器化
  • DevOps
  • 微服務
  • 應用部署
  • 持續集成
  • 持續交付
  • Linux
  • 開發運維
  • 雲原生
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 人民郵電齣版社
ISBN:9787115449573
版次:1
商品編碼:12174050
包裝:平裝
叢書名: 圖靈程序設計叢書
開本:16開
齣版時間:2017-03-01
用紙:膠版紙
頁數:271
正文語種:中文

具體描述

編輯推薦

Docker容器給軟件的開發、發布和運行提供瞭簡單、快速和可靠的方法,尤其是在動態和分布式的環境中。通過這本實戰指南,你將學習到為什麼容器如此重要,Docker能帶來哪些好處,以及怎樣把它變成開發流程的一部分。

本書適閤軟件開發者、運維工程師和係統管理員,尤其適閤對DevOps模式感興趣的讀者。作者將帶領你從基礎知識齣發,直到瞭解如何在多主機係統上運行數十個擁有聯網和調度能力的容器係統,重在讓你掌握使用Docker來開發、測試以及部署Web應用。

- 從構建和部署簡單Web應用開始瞭解Docker
- 使用持續部署技術,把應用一天多次推送到生産環境
- 學習各種不同的選項和技術,實現多容器的日誌記錄和監控
- 剖析聯網和服務發現:容器之間如何尋找對方,以及怎樣把它們連接起來
- 通過運用容器的編排和集群功能,解決負載均衡、擴展、故障切換以及調度的問題
- 遵守縱深防禦和zui小權限的原則,確保係統安全
- 利用容器構建微服務架構

內容簡介

Docker容器輕量和可移植的特性尤其適用於動態和分布式的環境,它的興起給軟件開發流程帶來瞭一場革命。Docker開發指南對Docker進行瞭全麵講解,包括開發、生産以至維護的整個軟件生命周期,並對其中可能齣現的一些問題進行瞭探討,如軟件版本差異、開發環境與生産環境的差異、係統安全問題,等等。

作者簡介

Adrian Mouat,Container Solutions公司首席科學傢。參與過很多軟件項目,既有小型的Web應用,也有大型數據分析軟件。

【譯者簡介】

黃彥邦(Anthony Wong)

Linux開發專傢,熱衷於開源技術,從事Linux相關開發工作十多年,曾參與多個大型開源項目,如Debian GNU/Linux和Ubuntu,提交補丁無數。以推動Debian係統中文化以及網站和文檔翻譯為目標,1998年成為中國首位Debian計劃官方開發者。

個人網站:http://blog.anthonywong.net

目錄

前言 xi
第一部分 背景與基礎
第 1 章 何謂容器,為何需要它 3
1.1 容器與虛擬機的比較 4
1.2 Docker與容器 5
1.3 Docker的曆史 7
1.4 插件與基礎設施 8
1.5 64位Linux 9
第 2 章 安裝 10
2.1 在Linux上安裝 Docker 10
2.1.1 將SELinux置於寬容模式下運行 11
2.1.2 不使用sudo命令執行Docker 11
2.2 在Mac OS及Windows上安裝Docker 12
2.3 快速確認 13
第 3 章 邁齣第一步 15
3.1 運行第一個鏡像 15
3.2 基本命令 16
3.3 通過Dockerfile創建鏡像 20
3.4 使用寄存服務 22
3.5 使用Redis官方鏡像 24
3.6 總結 27
第 4 章 Docker基本概念 28
4.1 Docker係統架構 28
4.1.1 底層技術 29
4.1.2 周邊技術 30
4.1.3 Docker托管 31
4.2 鏡像是如何生成的 32
4.2.1 構建環境的上下文 32
4.2.2 鏡像層 33
4.2.3 緩存 35
4.2.4 基礎鏡像 35
4.2.5 Dockerfile指令 37
4.3 使容器與世界相連 39
4.4 容器互聯 40
4.5 利用數據捲和數據容器管理數據 41
4.5.1 共享數據 43
4.5.2 數據容器 44
4.6 Docker常用命令 45
4.6.1 run命令 46
4.6.2 容器管理 48
4.6.3 Docker信息 50
4.6.4 容器信息 50
4.6.5 鏡像管理 52
4.6.6 使用寄存服務器 54
4.7 總結 55
第二部分 Docker與軟件生命周期
第 5 章 在開發中應用Docker 59
5.1 說聲“Hello World!” 59
5.2 通過Compose實現自動化 67
5.3 總結 69
第 6 章 創建一個簡單的Web應用 71
6.1 創建一個基本網頁 72
6.2 利用現有鏡像 73
6.3 實現緩存功能 78
6.4 微服務 81
6.5 總結 81
第 7 章 鏡像分發 82
7.1 鏡像及鏡像庫的命名方式 82
7.2 Docker Hub 83
7.3 自動構建 85
7.4 私有分發 86
7.4.1 運行自己的寄存服務 86
7.4.2 商業寄存服務 92
7.5 縮減鏡像大小 92
7.6 鏡像齣處 94
7.7 總結 94
第 8 章 Docker持續集成與測試 95
8.1 為identidock添加單元測試 95
8.2 創建Jenkins容器 100
8.3 推送鏡像 106
8.3.1 給鏡像正確的標簽 106
8.3.2 準生産及生産環境 108
8.3.3 鏡像數量激增的問題 108
8.3.4 使用Docker部署Jenkins slaves 109
8.4 備份Jenkins數據 109
8.5 持續集成的托管解決方案 109
8.6 測試與微服務 110
8.7 總結 111
第 9 章 部署容器 113
9.1 通過Docker Machine配置資源 114
9.2 使用代理 117
9.3 執行選項 122
9.3.1 shell腳本 122
9.3.2 使用進程管理器(或用systemd控製所有進程) 124
9.3.3 使用配置管理工具 127
9.4 主機配置 130
9.4.1 選擇操作係統 130
9.4.2 選擇存儲驅動程序 130
9.5 專門的托管方案 132
9.5.1 Triton 132
9.5.2 榖歌容器引擎 134
9.5.3 亞馬遜EC2容器服務 135
9.5.4 Giant Swarm 136
9.6 持久性數據和生産環境容器 138
9.7 分享秘密信息 139
9.7.1 在鏡像中保存秘密信息 139
9.7.2 通過環境變量傳遞密鑰 139
9.7.3 通過數據捲傳遞密鑰 140
9.7.4 使用鍵值存儲 140
9.8 網絡連接 141
9.9 生産環境的寄存服務 141
9.10 持續部署 / 交付 141
9.11 總結 142
第 10 章 日誌記錄和監控 143
10.1 日誌記錄 144
10.1.1 Docker默認的日誌記錄 144
10.1.2 日誌匯總 145
10.1.3 使用ELK進行日誌記錄 146
10.1.4 通過syslog實現日誌管理 155
10.1.5 從文件抓取日誌 160
10.2 監控和警報 161
10.2.1 使用Docker工具進行監測 161
10.2.2 cAdvisor 162
10.2.3 集群解決方案 163
10.3 商用的監聽及日誌記錄解決方案 166
10.4 總結 166
第三部分 工具和技術
第 11 章 聯網和服務發現 169
11.1 大使容器 170
11.2 服務發現 173
11.2.1 etcd 173
11.2.2 SkyDNS 177
11.2.3 Consul 181
11.2.4 服務注冊 185
11.2.5 其他解決方案 186
11.3 聯網選項 187
11.3.1 網橋模式 187
11.3.2 主機模式 188
11.3.3 容器模式 188
11.3.4 未聯網模式 188
11.4 全新的Docker聯網功能 188
11.5 網絡解決方案 190
11.5.1 Overlay 191
11.5.2 Weave 193
11.5.3 Flannel 196
11.5.4 Calico項目 201
11.6 總結 205
第 12 章 編排、集群和管理 207
12.1 集群和編排工具 208
12.1.1 Swarm 208
12.1.2 fleet 214
12.1.3 Kubernetes 219
12.1.4 Mesos和Marathon 226
12.2 容器管理平颱 235
12.2.1 Rancher 236
12.2.2 Clocker 237
12.2.3 Tutum 238
12.3 總結 239
第 13 章 容器安全與限製容器 241
13.1 需要考慮的事項 242
13.2 縱深防禦 244
13.3 如何保護identidock 245
13.4 以主機隔離容器 246
13.5 進行更新 246
13.6 鏡像齣處 249
13.6.1 Docker摘要 250
13.6.2 Docker的內容信任機製 250
13.6.3 可復製及可信任的Dockerfile 254
13.7 安全建議 256
13.7.1 設置用戶 256
13.7.2 限製容器聯網 257
13.7.3 刪除setuid和setgid的二進製文件 258
13.7.4 限製內存使用 259
13.7.5 限製CPU使用 260
13.7.6 限製重新啓動 261
13.7.7 限製文件係統 261
13.7.8 限製內核能力 262
13.7.9 應用資源限製 263
13.8 運行加固內核 264
13.9 Linux安全模塊 265
13.9.1 SELinux 265
13.9.2 AppArmor 268
13.10 審核 268
13.11 事件響應 269
13.12 未來特性 269
13.13 總結 270
作者簡介 271
關於封麵 271
《容器化部署實戰:從入門到精通》 內容簡介 在當今快速迭代的軟件開發浪潮中,如何構建、部署和管理應用程序已成為一項至關重要的技能。本書《容器化部署實戰:從入門到精通》旨在為您提供一套全麵、深入的容器化解決方案,幫助您掌握現代應用交付的核心技術。我們不局限於單一工具,而是從更廣闊的視角,係統地闡述容器化帶來的革命性變化,以及如何在實際項目中落地應用。 本書將帶領您踏上一段係統性的容器化學習之旅。我們將從容器化的基本概念齣發,深入剖析其工作原理、核心優勢以及與傳統部署方式的顯著區彆。您將理解為什麼容器化能夠極大提升應用的部署效率、可移植性、可伸縮性和一緻性,從而為構建更健壯、更敏捷的係統奠定堅實基礎。 核心技術與實踐 本書的核心內容將圍繞著當下業界最流行、最成熟的容器技術展開。我們將深入探討容器運行時環境的構建與配置,詳細講解如何創建和管理獨立的、隔離的運行空間。這包括對鏡像構建過程的深度解析,從基礎操作係統的選擇、依賴庫的安裝,到應用程序代碼的打包,再到構建過程中的優化技巧,確保您能夠構建齣體積小巧、安全高效的鏡像。我們將覆蓋多種構建策略,例如多階段構建(multi-stage builds),以最大限度地減少最終鏡像的體積,並提升安全性。 本書還將重點關注容器編排的核心概念與實踐。在分布式係統中,單個容器的管理很快會變得復雜。因此,我們將深入介紹領先的容器編排平颱,如Kubernetes。您將學習到Kubernetes的架構、核心組件(如Pod、Deployment、Service、Namespace等)以及它們如何協同工作,實現大規模應用的自動化部署、擴展和管理。我們將詳細講解聲明式配置的理念,以及如何使用YAML文件定義和管理您的應用生命周期。 除瞭Kubernetes,本書還會觸及其他重要的容器編排和管理工具,以提供更全麵的視角。例如,您將瞭解如何使用Helm來管理Kubernetes應用的生命周期,包括打包、安裝、升級和迴滾。我們還將探討一些更輕量級的容器編排解決方案,以及在不同場景下選擇閤適工具的考量因素。 應用場景與最佳實踐 本書不僅關注技術細節,更注重在實際應用場景中的落地。我們將通過豐富的案例分析,展示容器化技術如何在微服務架構、持續集成/持續部署(CI/CD)流水綫、大數據處理、AI/ML模型部署等場景中發揮關鍵作用。您將學習如何將現有的單體應用遷移到容器化環境,如何設計和構建支持容器化部署的微服務,以及如何構建一個端到端的CI/CD流程,實現代碼提交到生産環境部署的自動化。 在安全性方麵,本書將提供一套完整的容器安全實踐指南。您將瞭解如何構建安全可靠的容器鏡像,如何管理容器的權限和網絡隔離,如何使用安全策略來限製容器的行為,以及如何對容器集群進行安全審計和漏洞掃描。我們將討論鏡像掃描、運行時安全監控、網絡策略配置、Secrets管理等關鍵安全措施。 性能優化與故障排除 為瞭幫助您構建高性能、高可用的容器化應用,本書將深入探討性能優化的策略。您將學習如何監控容器的資源使用情況,識彆性能瓶頸,並采取相應的優化措施,例如調整資源限製、優化應用程序代碼、選擇閤適的存儲捲類型等。 同時,本書還將為您提供一套係統的故障排除指南。在復雜的容器化環境中,故障的排查可能比傳統環境更具挑戰性。我們將詳細講解如何收集日誌、如何使用調試工具、如何分析故障現象,以及如何利用容器編排平颱的內置功能來診斷和解決問題。您將學習到如何分析Pod狀態、查看容器日誌、檢查Deployment和Service配置、理解網絡故障等常見問題。 內容框架預覽 本書的內容結構清晰,循序漸進,旨在滿足不同水平讀者的學習需求: 第一部分:容器化基礎 第一章:容器化時代的來臨 為何選擇容器化?傳統部署的痛點與挑戰。 容器化的核心概念:鏡像、容器、倉庫。 容器與虛擬機的對比。 容器化生態係統概覽。 第二章:容器運行時剖析 容器運行時工作原理(如runc、containerd)。 Linux內核特性對容器的支持(namespaces, cgroups)。 容器安全基礎。 第三章:鏡像構建藝術 Dockerfile語法與最佳實踐。 多階段構建:優化鏡像大小與安全性。 常用的基礎鏡像選擇與優化。 鏡像倉庫的使用與管理(如Docker Hub, Harbor)。 第二部分:容器編排實戰 第四章:Kubernetes入門 Kubernetes架構詳解:Master節點與Worker節點。 核心組件:etcd, API Server, Controller Manager, Scheduler, Kubelet, Kube-proxy。 YAML文件:聲明式配置的基礎。 Pod:Kubernetes的最小部署單元。 第五章:工作負載管理 Deployment:管理無狀態應用的部署與更新。 StatefulSet:管理有狀態應用的部署與擴展。 DaemonSet:確保每個節點運行一個Pod副本。 Job與CronJob:批處理任務的執行。 第六章:服務發現與負載均衡 Service:為Pod提供穩定的網絡訪問。 Service類型:ClusterIP, NodePort, LoadBalancer, ExternalName。 Ingress:實現集群外部訪問集群內部的服務。 第七章:存儲與配置管理 Volume:容器數據的持久化。 PersistentVolume (PV) 與 PersistentVolumeClaim (PVC):存儲資源的抽象。 StorageClass:動態供給存儲。 ConfigMap:管理應用配置。 Secret:安全地管理敏感信息。 第三部分:高級應用與最佳實踐 第八章:容器安全加固 安全鏡像構建:最小化攻擊麵。 RBAC:Kubernetes訪問控製。 Network Policies:控製Pod間的網絡通信。 安全上下文(Security Context)。 運行時安全監控與審計。 第九章:CI/CD與容器化 將容器集成到CI/CD流程。 Jenkins, GitLab CI, GitHub Actions等工具在容器化部署中的應用。 自動化構建、測試與部署。 第十章:微服務架構與容器化 微服務的設計原則與容器化的契閤。 服務網格(Service Mesh)簡介(如Istio, Linkerd)。 API Gateway的設計與實現。 十一章:性能優化與監控 容器資源限製與請求。 Prometheus與Grafana:容器監控解決方案。 日誌管理:ELK Stack, Loki。 性能調優案例分析。 十二章:故障排除與調試 Kubernetes集群與Pod的常見故障。 調試技巧與工具。 故障復盤與預防。 十三章:容器化生態係統探索 Helm:Kubernetes包管理。 Istio:服務網格的深入應用。 Serverless與容器。 邊緣計算與容器。 目標讀者 本書適閤以下讀者群體: 開發人員: 希望掌握如何將應用程序容器化,實現高效、一緻的部署。 運維工程師: 緻力於學習和實踐容器編排技術,提升係統管理能力。 架構師: 尋求為現代應用設計和構建可伸縮、高可用的係統。 技術愛好者: 對容器化技術充滿好奇,渴望深入瞭解其工作原理和應用。 通過閱讀《容器化部署實戰:從入門到精通》,您將不僅掌握容器化部署的理論知識,更能獲得豐富的實戰經驗,能夠獨立設計、構建、部署和管理容器化應用,從而在快速發展的技術浪潮中保持領先地位。我們相信,這本書將成為您在容器化領域寶貴的參考指南。

用戶評價

評分

這本書給我最大的感受就是它的係統性和深度。我之前零散地接觸過一些Docker的教程,但總覺得不成體係,學到的知識點也比較零碎。這本書不同,它從最基礎的概念講起,循序漸進地深入到高級應用,每一個章節都承接得非常自然。我特彆欣賞書中對於Docker網絡和存儲管理的講解,這部分內容通常比較晦澀難懂,但作者用清晰的圖示和詳細的解釋,把它們講得明明白白。書中關於如何配置Docker網絡,實現容器間的互聯互通,以及如何利用捲來實現數據的持久化和共享,都給瞭我很多啓發。我印象最深的是書中介紹的關於Kubernetes的入門部分,雖然不是這本書的主體內容,但它作為一個延伸,為我打開瞭另一個更廣闊的世界。這讓我明白,Docker不僅僅是一個孤立的技術,更是構建現代化雲原生應用的重要基石。這本書就像一座寶藏,每一次翻閱都能有新的發現和收獲,讓我對Docker及其生態有瞭更全麵、更深刻的理解。

評分

這本書的封麵設計很吸引人,深邃的藍色背景搭配簡潔的Docker鯨魚Logo,一下子就抓住瞭我的眼球。我一直對容器化技術很感興趣,但總覺得門檻有點高,不知道從何下手。拿到這本書後,迫不及待地翻開,裏麵的排版非常清晰,文字大小適中,閱讀起來非常舒適。我特彆喜歡它開篇介紹Docker的由來和發展曆程的部分,讓我對這項技術有瞭更宏觀的認識,不再是零散的知識點。後麵章節中,作者用瞭很多生動的比喻來解釋Docker的核心概念,比如鏡像、容器、倉庫等等,這些比喻非常貼切,瞬間就把那些看似抽象的概念具象化瞭。我尤其對書中關於“容器化如何改變軟件開發流程”的討論印象深刻,它不僅僅是技術層麵的介紹,更上升到瞭對整個行業發展趨勢的洞察,讓我對接下來的學習充滿瞭期待。雖然我還沒有深入到每一個技術細節,但僅僅是前幾章的內容,就已經讓我感覺這本書的價值遠超我預期的。

評分

讀完這本書的某些章節,我腦海中湧現齣的是一種豁然開朗的感覺。之前在實際工作中遇到過一些部署和環境一緻性方麵的問題,總是需要花費大量時間去排查,這本書提供的解決方案簡直是及時雨。書中關於如何構建高效的Docker鏡像的技巧,我之前嘗試過一些,但總感覺效率不高,這本書裏詳細講解瞭多階段構建、層緩存優化等方法,讓我茅塞頓開。尤其是關於如何編寫Dockerfile的案例分析,每一個指令都解釋得非常清楚,而且後麵還提供瞭很多最佳實踐,讓我在實際操作時少走瞭很多彎路。我還在書中看到瞭一些關於如何利用Docker Compose來管理多個容器的介紹,這對於我目前正在進行的一個微服務項目來說,簡直是福音。之前管理這些服務時,啓動和停止都非常麻煩,有瞭Docker Compose,一切都變得井井有條。這本書的實用性真的非常強,感覺每一頁都充滿瞭乾貨,讓我迫不及待地想把這些學到的知識應用到工作中去,解決那些睏擾我已久的難題。

評分

總的來說,這本書是一本非常值得推薦給所有對Docker感興趣的開發者的書。它不僅僅是技術的堆砌,更包含瞭作者對整個軟件開發生態的思考和理解。我尤其喜歡書中關於持續集成和持續部署(CI/CD)與Docker結閤的部分,這部分內容對於提升開發效率和軟件質量至關重要。書中詳細介紹瞭如何利用Docker將CI/CD流程自動化,如何構建高效的CI/CD流水綫,以及如何利用Docker來管理測試環境和生産環境,這些都給瞭我非常大的幫助。我還在書中看到瞭關於Docker Registry的使用指南,包括如何搭建私有Registry,如何管理鏡像的生命周期等等,這些對於我管理和分發自己項目的Docker鏡像非常有用。這本書讓我明白瞭Docker在現代軟件開發中的核心地位,它不僅僅是一個工具,更是一種思維方式。讀完這本書,我感覺自己對Docker的掌握程度有瞭質的飛躍,也更有信心去應對未來工作中可能遇到的各種挑戰。

評分

這本書的語言風格非常獨特,讀起來一點也不枯燥。作者的文筆幽默風趣,常常在講解技術的同時穿插一些有趣的小故事或者類比,讓原本可能乏味的技術概念變得生動起來。我尤其喜歡書中關於Docker安全性的討論,這部分內容往往容易被忽視,但作者卻花瞭很大的篇幅來講解,包括如何最小化鏡像、如何管理敏感信息、如何進行容器隔離等等,這些都是保障生産環境安全的關鍵。書中還提供瞭一些實用的安全加固的腳本和工具,讓我能夠更直觀地感受到安全的重要性,並且知道如何去實踐。除瞭技術內容,書中對Docker在不同應用場景下的實際案例分析也做得非常齣色,比如微服務架構、CI/CD流水綫、大數據處理等等,這些案例讓我能夠更好地理解Docker在實際業務中的價值和應用。這本書不僅教會瞭我“怎麼做”,更讓我思考瞭“為什麼這樣做”,這種深入的思考讓我對Docker的理解提升瞭一個層次。

評分

挺新的一本書。也叫實戰。in practice 和 in action的區彆。主要還是在作者的認真程度上。

評分

書不錯,已經開始看瞭,快速的瞭解Docker,還學到瞭很多linux命令。每個命令都講解其意,很適閤入門。

評分

物流很快,一天到

評分

學習下容器化的技術。。。

評分

還可以,整理來說不錯,推薦有需要的購買。很愉快的購物。

評分

《Docker開發實踐》由淺入深地介紹瞭Docker的實踐之道,首先講解Docker的概念、容器和鏡像的相關操作、容器的數據管理等內容,接著通過不同類型的應用說明Docker的實際應用,然後介紹瞭網絡、安全、API、管理工具Fig、Kubernetes、shipyard以及Docker三件套(Machine+Swarm+Compose)等,列舉瞭常見鏡像、Docker API等內容。

評分

書不錯,買瞭慢慢看,學習學習

評分

3、當然書中有一兩處的小錯誤還沒有校驗齣來。同事部分配置方麵因為Ubuntu或者其他軟件版本升級的緣故可能會齣現一些錯誤,還希望讀者自己能解決

評分

很不錯的實戰書,希望可以快速上手

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有