更多書籍文章點擊進入>> CiCi島php
電子版僅供預覽及學習交流使用,下載後請24小時內刪除,支持正版,喜歡的請購買正版書籍html
對於應用程序,不管是在私有云部署仍是在公有云部署,本書都列出了豐富實用的解決方案和示例。 git
即便不具有Docker相關知識,基於書中實用的解決方案,開發人員也能在閱讀幾章以後打包和部署分佈式應用程序。若是你是一位運維人員,你將很快掌握如何使用Docker來改善本身的工做方式。若是你是一位IT專業人士,你將可以學習到如何解決平常問題,好比建立、運行、共享和部署Docker鏡像。 github
管理容器、掛載數據卷和容器鏈接 docker
建立和共享鏡像 shell
單主機或多主機的Docker網絡 數據庫
處理Docker配置與開發等進階問題 編程
使用Kubernetes在分佈式集羣中部署多容器的應用程序 安全
使用爲Docker優化的新一代操做系統 服務器
學習用於應用程序部署、持續集成、服務發現和編排的工具
在Amazon AWS、Google GCE和Microsoft Azure上使用Docker
監控容器,並探討不一樣的應用程序用例
對於應用程序,不管是在私有云部署仍是在公有云部署,本書都列出了豐富實用的解決方案和示例。
即便不具有Docker相關知識,基於書中實用的解決方案,開發人員也能在閱讀幾章以後打包和部署分佈式應用程序。若是你是一位運維人員,你將很快掌握如何使用Docker來改善本身的工做方式。若是你是一位IT專業人士,你將可以學習到如何解決平常問題,好比建立、運行、共享和部署Docker鏡像。
管理容器、掛載數據卷和容器鏈接
建立和共享鏡像
單主機或多主機的Docker網絡
處理Docker配置與開發等進階問題
使用Kubernetes在分佈式集羣中部署多容器的應用程序
使用爲Docker優化的新一代操做系統
學習用於應用程序部署、持續集成、服務發現和編排的工具
在Amazon AWS、Google GCE和Microsoft Azure上使用Docker
監控容器,並探討不一樣的應用程序用例
本書結構明晰,示例豐富詳實,是全面實用的Docker入門教程。做者全面介紹了Docker相關各類工具和平臺,涵蓋網絡、鏡像管理、配置以及包括Kubernetes和Mesos在內的編排和調度生態系統,對私有云和公有云上部署的應用程序都給出了豐富實用的解決方案和示例。
Sébastien Goasguen,Citrix高級開源解決方案架構師,主要從事Apache CloudStack項目,幫助開發CloudStack生態系統。他目前是Apache CloudStack項目的副總裁,也是Apache libcloud項目管理委員會的成員。 譯者簡介: 劉斌 具備10餘年軟件開發經驗,關注後臺開發技術和各類編程語言。作過電子商務、金融、企業系統以及Android手機開發,寫過Delphi,也兼作系統管理員和DBA,最近在作與Docker相關的工做。 我的主頁:liubin.org 微信公衆號:西小口物語(xxk_talks)
本書讚譽 xi
前言 xiii
第1 章 Docker 入門 1
1.0 簡介 1
1.1 在Ubuntu 14.04 上安裝Docker 2
1.2 在CentOS 6.5 上安裝Docker 3
1.3 在CentOS 7 上安裝Docker 4
1.4 使用Vagrant 建立本地Docker 主機 4
1.5 在樹莓派上安裝Docker 6
1.6 在OS X 上經過Docker Toolbox 安裝Docker 7
1.7 在OS X 上經過Boot2Docker 安裝Docker 9
1.8 在Windows 8.1 臺式機上運行Boot2Docker 13
1.9 使用Docker Machine 在雲中建立Docker 主機 14
1.10 使用Docker 實驗版二進制文件 18
1.11 在Docker 中運行Hello World 18
1.12 之後臺方式運行Docker 容器 20
1.13 建立、啓動、中止和移除容器 21
1.14 使用Dockerfile 構建Docker 鏡像 22
1.15 在單一容器中使用Supervisor 運行WordPress 24
1.16 使用兩個連接在一塊兒的容器運行WordPress 博客程序 26
1.17 備份在容器中運行的數據庫 28
1.18 在宿主機和容器之間共享數據 30
1.19 在容器之間共享數據 31
1.20 對容器進行數據複製 32
第2 章 建立和共享鏡像 34
2.0 簡介 34
2.1 將對容器的修改提交到鏡像 35
2.2 將鏡像和容器保存爲tar 文件進行共享 36
2.3 編寫你的第一個Dockerfile 37
2.4 將Flask 應用打包到鏡像 40
2.5 根據最佳實踐優化Dockerfile 42
2.6 經過標籤對鏡像進行版本管理 43
2.7 使用Docker provider 從Vagrant 遷移到Docker 45
2.8 使用Packer 構建Docker 鏡像 47
2.9 將鏡像發佈到Docker Hub 50
2.10 使用ONBUILD 鏡像 53
2.11 運行私有registry 54
2.12 爲持續集成/部署在Docker Hub 上配置自動構建 56
2.13 使用Git 鉤子和私有registry 創建本地自動構建環境 60
2.14 使用Conduit 進行持續部署 61
第3 章 Docker網絡 63
3.0 簡介 63
3.1 查看容器的IP地址 64
3.2 將容器端口暴露到主機上 65
3.3 在Docker中進行容器連接 67
3.4 理解Docker容器網絡 69
3.5 選擇容器網絡模式 72
3.6 配置Docker 守護進程iptables 和IP 轉發設置 74
3.7 經過Pipework 理解容器網絡 75
3.8 定製Docker 網橋設備 80
3.9 在Docker 中使用OVS 81
3.10 在Docker 主機間建立GRE 隧道 83
3.11 在Weave 網絡上運行容器 85
3.12 在AWS 上運行Weave 網絡 87
3.13 在Docker 主機上部署flannel 覆蓋網絡 89
3.14 在多臺Docker 主機中使用Docker Network 90
3.15 深刻Docker Network 命名空間配置 94
第4 章 開發和配置Docker 96
4.0 簡介 96
4.1 管理和配置Docker 守護進程 97
4.2 從源代碼編譯本身的Docker 二進制文件 98
4.3 爲開發Docker 運行Docker 測試集 100
4.4 使用新的Docker 二進制文件替換當前的文件 101
4.5 使用nsenter 102
4.6 runc 簡介 104
4.7 遠程訪問Docker 守護進程 106
4.8 經過Docker 遠程API 完成自動化任務 107
4.9 從遠程安全訪問Docker 守護進程 109
4.10 使用docker-py 訪問遠程Docker 守護進程 111
4.11 安全使用docker-py 113
4.12 更改存儲驅動程序 113
第5 章 Kubernetes 116
5.0 簡介 116
5.1 理解Kubernetes 架構 118
5.2 用於容器間鏈接的網絡pod 120
5.3 使用Vagrant 建立一個多節點的Kubernetes 集羣 121
5.4 在Kubernetes 集羣上經過pod 啓動容器 124
5.5 利用標籤查詢Kubernetes 對象 126
5.6 使用replication controller 管理pod 的副本數 127
5.7 在一個pod 中運行多個容器 129
5.8 使用集羣IP 服務進行動態容器連接 131
5.9 使用Docker Compose 建立一個單節點Kubernetes 集羣 135
5.10 編譯Kubernetes 構建本身的發佈版本 139
5.11 使用hyperkube 二進制文件啓動Kubernetes 組件 141
5.12 瀏覽Kubernetes API 142
5.13 運行Kubernetes 儀表盤 146
5.14 升級老版本API 147
5.15 爲Kubernetes 集羣添加身份驗證支持 149
5.16 配置Kubernetes 客戶端鏈接到遠程集羣 150
第6 章 爲Docker 優化的操做系統 152
6.0 簡介 152
6.1 在Vagrant 中體驗CoreOS Linux 發行版 153
6.2 使用cloud-init 在CoreOS 上啓動容器 155
6.3 經過Vagrant 啓動CoreOS 集羣,在多臺主機上運行容器 157
6.4 在CoreOS 集羣上經過fleet 啓動容器 160
6.5 在CoreOS 實例之間部署flannel 覆蓋網絡 162
6.6 使用Project Atomic 運行Docker 容器 164
6.7 在AWS 上啓動Atomic 實例運行Docker 165
6.8 快速體驗在Ubuntu Core Snappy 上運行Docker 167
6.9 在AWS EC2 上啓動Ubuntu Core Snappy 實例 169
6.10 在RancherOS 中運行Docker 容器 173
第7 章 Docker 生態環境:工具 175
7.0 簡介 175
7.1 使用Docker Compose建立WordPress站點 176
7.2 使用Docker Compose在Docker上對Mesos和Marathon進行測試 179
7.3 在Docker Swarm 集羣上運行容器 181
7.4 使用Docker Machine建立跨雲計算服務提供商的Swarm集羣 183
7.5 使用Kitematic UI 管理本地容器 185
7.6 使用Docker UI 管理容器 187
7.7 使用Wharfee 交互式shell 189
7.8 使用Ansible 的Docker模塊對容器進行編排 190
7.9 在Docker主機集羣中使用Rancher管理容器 193
7.10 使用Lattice 在集羣中運行容器 196
7.11 經過Apache Mesos 和Marathon 運行容器 198
7.12 在Mesos 集羣上使用Mesos Docker 容器化 202
7.13 使用registrator 發現Docker 服務 204
第8 章 雲計算中的Docker 208
8.0 簡介 208
8.1 在公有云中運行Docker 209
8.2 在AWS EC2 上啓動Docker 主機 212
8.3 在Google GCE 上啓動Docker 主機 215
8.4 在Microsoft Azure 上啓動Docker 主機 218
8.5 在AWS 上使用Docker Machine 啓動Docker 主機 220
8.6 在Azure 上使用Docker Machine 啓動Docker 主機 222
8.7 在Docker 容器中運行雲服務提供商的CLI 224
8.8 使用Google Container registry 存儲Docker 鏡像 226
8.9 在GCE Google-Container 實例中使用Docker 229
8.10 經過GCE 在雲中使用Kubernetes 231
8.11 配置使用EC2 Container Service 234
8.12 建立一個ECS 集羣 237
8.13 在ECS 集羣中啓動Docker 容器 240
8.14 利用AWS Beanstalk 對Docker 的支持在雲中運行應用程序 244
第9 章 監控容器 248
9.0 簡介 248
9.1 使用docker inspect 命令獲取容器的詳細信息 249
9.2 獲取運行中容器的使用統計信息 251
9.3 在Docker 主機上監聽Docker 事件 252
9.4 使用docker logs 命令獲取容器的日誌 254
9.5 使用Docker 守護進程以外的日誌記錄驅動程序 254
9.6 使用Logspout 採集容器日誌 257
9.7 管理Logspout 路由來存儲容器日誌 259
9.8 使用Elasticsearch 和Kibana 對容器日誌進行存儲和可視化 261
9.9 使用Collectd 對容器指標進行可視化 262
9.10 使用cAdvisor 監控容器資源使用情況 267
9.11 經過InfluxDB、Grafana 和cAdvisor 監控容器指標 269
9.12 使用Weave Scope 對容器佈局進行可視化 270
第10 章 應用用例 272
10.0 簡介 272
10.1 CI/CD:構建開發環境 273
10.2 CI/CD:使用Jenkins 和Apache Mesos 構建持續交付工做流 276
10.3 ELB:使用confd 和registrator 建立動態負載平衡器 280
10.4 DATA:使用Cassandra 和Kubernetes 構建兼容S3 的對象存儲 286
10.5 DATA:使用Docker Network 構建MySQL Galera 集羣 290
10.6 DATA:以動態方式爲MySQL Galera 集羣配置負載平衡器 292
10.7 DATA:構建Spark 集羣 294
關於做者 298
關於封面 298
我已經在雲計算領域(主要是 IaaS 層)工做了 10 餘年。Amazon AWS、Google GCE 和Microsoft Azure 提供大規模的雲計算服務已經有幾年了,絕不誇張地說,訪問一臺服務器從未像如今這樣方便、快速。對我來講,其真正的價值在於能夠經過 API 來訪問這些服務。咱們如今能夠經過編程來建立基礎設施和部署應用。這些可編程層可以幫助咱們達到更高級別的自動化,有利於企業更快地將產品推向市場,作出更多的創新,以及更好地爲用戶服務。
然而,儘管咱們在配置管理和編排上耗費了大量的精力,可是對於在一個分佈式環境中進行應用程序打包、配置和服務組裝等方面依舊沒有取得太大的進步。部署和運行一個可擴展、可容錯的分佈式應用程序仍然是比較困難的。
直到我試用 Docker 並明白了它爲咱們帶來的可能性以後,我才成爲 Docker 的瘋狂粉絲。Docker 爲 Linux 容器帶來了全新的用戶體驗。它不是要提供與容器相對的徹底虛擬化技術,而是要爲應用程序的打包和運行提供便利。一旦你開始使用 Docker 並享受它所帶來的全新體驗,就會同時體會到另外一個好處:你會開始思考如何進行合成和聚類分析。
容器幫助咱們更多地思考如何進行功能隔離,這反過來又迫使咱們在分佈式環境中對應用進行解耦,而後再將其粘合在一塊兒。
「這本書對Docker生態系統進行了很好的闡述,很是適合對容器感興趣的讀者。」 ——Darren Shepherd,Rancher Labs聯合創始人 「這些範例對於幫助咱們在本身的平臺上快速將Docker運用於生產環境相當重要。」 ——Mathieu Buffenoir,Bity CTO
本篇文章由一文多發平臺ArtiPub自動發佈