編輯推薦
對於應用程序,無論是在私有雲部署還是在公有雲部署,本書都列齣瞭豐富實用的解決方案和示例。
即使不具備Docker相關知識,基於書中實用的解決方案,開發人員也能在閱讀幾章之後打包和部署分布式應用程序。如果你是一位運維人員,你將很快掌握如何使用Docker來改善自己的工作方式。如果你是一位IT專業人士,你將能夠學習到如何解決日常問題,比如創建、運行、共享和部署Docker鏡像。
管理容器、掛載數據捲和容器連接
創建和共享鏡像
單主機或多主機的Docker網絡
處理Docker配置與開發等進階問題
使用Kubernetes在分布式集群中部署多容器的應用程序
使用為Docker優化的新一代操作係統
學習用於應用程序部署、持續集成、服務發現和編排的工具
監控容器,並探討不同的應用程序用例
內容簡介
《Docker經典實例》結構明晰,示例豐富詳實,是全麵實用的Docker入門教程。作者全麵介紹瞭Docker相關各種工具和平颱,涵蓋網絡、鏡像管理、配置以及包括Kubernetes和Mesos在內的編排和調度生態係統,對私有雲和公有雲上部署的應用程序都給齣瞭豐富實用的解決方案和示例。
作者簡介
Sébastien Goasguen,Citrix高級開源解決方案架構師,主要從事Apache CloudStack項目,幫助開發CloudStack生態係統。他目前是Apache CloudStack項目的副總裁,也是Apache libcloud項目管理委員會的成員。
<譯者簡介>
具有10餘年軟件開發經驗,關注後颱開發技術和各種編程語言。做過電子商務、金融、企業係統以及Android手機開發,寫過Delphi,也兼做係統管理員和DBA,近期在做與Docker相關的工作。
個人主頁:http://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
Docker經典實例 下載 mobi epub pdf txt 電子書 格式