沒什麼難的 Docker 入門與開發實戰

熊昌隆

  • 出版商: 電子工業
  • 出版日期: 2017-06-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 364
  • 裝訂: 平裝
  • ISBN: 7121314274
  • ISBN-13: 9787121314278
  • 相關分類: Docker
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

作為引領近幾年容器虛擬化領域的技術,Docker的發展方興未艾。但由於其出現不過數年,關於它的資料,特別是中文資料仍然相對匱乏,導致國內許多開發者對其感到陌生。本書正是以佈道Docker為理念,由淺入深地從闡述Docker的基本概念、講解常規使用方法、進行操作實踐的演示、展示提高和進階用法、剖析內部原理和底層架構等多個方面,全方面的展現Docker所具有的魅力。本書由概念及至實踐,從不同方面向讀者展現了Docker,實用性非常強,既可以作為一本學習Docker的入門教材,也能作為進行Docker操作實踐的說明書,甚至可以作為提高和進階的知識寶庫。不論是對Docker認知程度不同,有著不同知識儲備的人,還是處於程序軟件研發部署流程中的開發人員、測試人員或運維人員,本書都有著很強的可閱讀性。

作者簡介

熊昌隆,資深架構師,Web全棧開發者,知名博主,Beaver框架作者,開源小組Funcuter的發起者,致力於新興技術的研究和推廣。早年參與智慧路由的研究,多項研究成果影響了家用路由器的發展。

設計實現的Beaver框架,已經應用於千萬級系統的底層程序架構中。發起組建的Funcuter開源小組,旨在聚集國內的優秀開源項目和開發者,目前已經擁有多個開源項目。

近年來一直致力於前沿技術的研究和推廣,希望讓更多的開發者更輕鬆的接觸、了解最新興科技成果,並應用於開發實踐中。

目錄大綱


第一部分基礎篇

第1章初識Docker 1 
1.1虛擬化2 
1.1.1虛擬化技術2 
1.1.2虛擬化的分類4 
1.2容器技術與Docker 6 
1.2.1容器技術6 
1.2.2 Docker簡介8 
1.2 .3改變世界的發明10 
1.3 Docker的安裝10 
1.3.1在Ubuntu中安裝Docker 11 
1.3.2在CentOS中安裝Docker 12 
1.3.3在Windows中安裝Docker 13 
1.3.4在Mac OS中安裝Docker 15 
1.3 .5在其他系統中安裝Docker 16 
1.4 Docker的優勢17 
1.4.1革命性的虛擬化方案17 
1.4.2高效的容器技術18 
1.4.3社區的力量19 
1.5 Docker的應用場景20 
1.5.1超短時間部署運行20 
1.5.2節約遷移時間21 
1.6本章小結21 

第2章鏡像與倉庫22 
2.1鏡像的概念22 
2.1.1聯合文件系統22 
2.1.2 Docker中的鏡像23 
2.1.3鏡像的分層結構24 
2.1.4鏡像的寫時復制25 
2.2使用和管理鏡像26 
2.2.1獲取鏡像26 
2.2.2列出鏡像28 
2.2.3獲得鏡像的詳細信息28 
2.2.4刪除鏡像31 
2.2.5鏡像的遷移32 
2.3 Docker Hub 33 
2.3.1鏡像倉庫33 
2.3.2 Docker Hub 34 
2 .3.3註冊Docker Hub賬號35 
2.3.4搜索鏡像36 
2.3.5共享自動構建鏡像38 
2.4搭建私有倉庫40 
2.4.1鏡像分發服務40 
2.4.2 Docker Registry HTTP API 41 
2.4.3部署私有倉庫42 
2.5本章小結44 

第3章管理和使用容器45 
3.1管理容器45 
3.1.1創建容器45 
3.1.2容器的啟動過程48 
3.1.3列出容器49 
3.1.4容器的命名51 
3.1.5啟動和停止52 
3.1 .6暫停和恢復53 
3.1.7重啟容器54 
3.1.8刪除容器55 
3.2連接到容器55 
3.2.1查看進程信息56 
3.2.2查看容器信息56 
3.2.3容器日誌62 
3.2.4銜接到容器63 
3.2.5在容器中執行命令64 
3.3容器的保存與遷移65 
3.3.1提交容器更改65 
3.3.2容器的導入/導出68 
3.4本章小結70 

第4章數據卷與網絡71 
4.1數據卷71 
4.1. 1關於數據卷71 
4.1.2數據卷的特點72 
4.1.3創建數據卷73 
4.1.4掛載數據卷74 
4.1.5刪除數據卷76 
4.2數據卷容器77 
4.2.1關於數據卷容器77 
4.2. 2創建數據卷容器78 
4.2.3連接數據卷容器79 
4.2.4數 據卷的遷移80 
4.3網絡基礎82 
4.3.1網絡簡介82 
4.3.2查看網絡配置83 
4.4網絡訪問85 
4.4.1宿主機端口映射85 
4.4.2容器連接87 
4.5本章小結90 

第5章製作鏡像91 
5.1了解Dockerfile 91 
5.1.1 Dockerfile簡介92 
5.1.2使用Dockerfile創建鏡像94 
5.2基礎指令96 
5.2.1 FROM 97 
5.2.2 MAINTAINER 97 
5.3控制指令97 
5.3.1 RUN 97 
5.3.2 WORKDIR 99 
5.3.3 ONBUILD 99 
5.4引入指令100 
5.4.1 ADD 100 
5.4.2 COPY 102 
5.5執行指令102 
5.5.1 CMD 102 
5.5.2 ENTRYPOINT 104 
5.6配置指令107 
5.6.1 EXPOSE 108 
5.6.2 ENV 108 
5.6.3 LABEL 109 
5.6. 4 USER 110 
5.6.5 ARG 111 
5.6.6 STOPSIGNAL 112 
5.6.7 SHELL 113 
5.7特殊用法113 
5.7.1環境變量113 
5.7.2指令解析114 
5.7.3忽略文件116 
5.8本章小結117 
第二部分實踐篇

第6章SSH服務118 
6.1在Docker中使用SSH 118 
6.1.1 SSH簡介119 
6.1.2 SSH使用方法簡介119 
6.1.3數據捲管理容器121 
6.1.4使用SSH服務容器122 
6.2構建SSH服務鏡像124 
6.2. 1構建方式比較124 
6.2.2通過提交 構建125 
6.2.3使用Dockerfile構建127 
6.3本章小結131 

第7章Web服務器132 
7.1 Web服務簡介132 
7.1.1萬維網與網站132 
7.1.2 Web服務133 
7.1.3 Web服務程序135 
7.2 Apache 135 
7.2.1 Apache簡介135 
7.2.2安裝Apache 136 
7.2.3構建Apache鏡像139 
7.2.4測試Apache容器142 
7.3 Nginx 143 
7.3.1關於Nginx 143 
7.3.2安裝Nginx 144 
7.3.3構建Nginx鏡像146 
7.3.4測試Nginx鏡像148 
7.4 Tomcat 148 
7.4.1 Tomcat簡介149 
7.4.2安裝Tomcat 149 
7.4.3構建Tomcat鏡像152 
7.5本章小結153 

第8章數據庫程序155 
8.1 MySQL 155 
8.1.1 MySQL簡介156 
8.1.2安裝MySQL 156 
8.1 .3構建MySQL鏡像162 
8.1.4測試MySQL容器164 
8.2 MongoDB 166 
8.2.1 MongoDB簡介166 
8.2.2安裝MongoDB 167 
8.2.3構建MongoDB鏡像171 
8.2.4測試MongoDB容器173 
8.3本章小結176 

第9章緩存工具177 
9.1 Memcached 178 
9.1.1 Memcached簡介178 
9.1.2安裝Memcached 179 
9.1.3構建Memcached鏡像184 
9.1.4測試Memcached容器186 
9.2 Redis 188 
9.2.1 Redis簡介188 
9.2.2安裝Redis 18 8 
9.2.3構建Redis鏡像193 
9.2.4測試Redis容器195 
9.3本章小結196 

第10章動態處理程序197 
10.1 Java 197 
10.1.1 Java簡介198 
10.1.2安裝Java 198 
10.1.3構建Java鏡像204 
10.1. 4測試Java容器206 
10.2 PHP 207 
10.2.1 PHP簡介207 
10.2.2安裝PHP 208 
10.2.3構建PHP鏡像214 
10.2.4測試PHP容器216 
10.3 Python 217 
10.3.1 Python簡介217 
10.3.2安裝Python 218 
10.3 .3構建Python鏡像223 
10.3.4測試Python容器224 
10.4 Node.js 225 
10.4.1 Node.js簡介225 
10.4.2安裝Node.js 226 
10.4.3構建Node.js鏡像228 
10.4.4測試Node.js容器230 
10.5本章小結231 

第11章綜合演練232 
11.1演練目標232 
11.1.1目標概述232 
11.1.2代碼編寫233 
11.2環境搭建237 
11.2.1準備鏡像237 
11.2.2程序配置239 
11.3項目運行248 
11.3. 1啟動容器248 
11.3.2測試項目249 
11.4本章小結253 
第三部分提高篇

第12章網絡進階254 
12.1網絡實現254 
12.1.1容器網絡基礎255 
12.1.2網絡模型257 
12.2 Docker中的網絡258 
12.2 .1默認網絡25 8 
12.2.2自定義網絡261 
12.2.3容器與外部通信262 
12.2.4容器間通信264 
12.3網絡實踐265 
12.3.1管理容器網絡265 
12.3.2容器連接網絡267 
12.3.3配置docker0網橋269 
12.3 .4自定義網橋271 
12.3.5配置DNS 271 
12.3.6使用IPv6 273 
12.4本章小結274 

第13章安全加固275 
13.1深入理解Docker安全275 
13.1.1命名空間隔離276 
13.1.2資源控制組277 
13.1 .3內核能力機制277 
13.2資源使用限制278 
13.2.1通過控制組限制278 
13.2.2通過ulimit限制280 
13.2.3網絡訪問限制280 
13.3校驗與監控281 
13.3.1鏡像簽名281 
13.3.2運行狀態監控283 
13.4聯級防護284 
13.4.1組合虛擬化284 
13.4.2文件系統安全284 
13.5內核安全技術285 
13.5.1 Capability 286 
13.5.2 SELinux 287 
13.5.3 AppArmor 288 
13.6本章小結289 

第14章Docker API 290 
14.1關於Docker API 290 
14.1.1通用操作接口290 
14.1.2關於RESTful 291 
14.1.3 Docker API的優勢292 
14.1.4 Docker API的分類293 
14.2使用Docker Remote API 293 
14 .2.1關於Docker Remote API 294 
14.2.2 Docker Remote API的版本299 
14.2.3通過Remote API列出容器300 
14.2.4通過Remote API列出鏡像302 
14.3使用Docker Registry API 303 
14.3.1關於Docker Registry API 304 
14.3.2 Docker Registry API的主要功能304 
14.3.3 Docker Registry API的版本305 
14.3.4通過Registry API拉取鏡像306 
14.3.5通過Registry API推送鏡像307 
14.4本章小結309 

第15章管理工具310 
15.1 Docker Compose 310 
15.1.1 Docker Compose簡介311 
15.1.2安裝Docker Compose 313 
15.1.3 Docker Compose配置文件314 
15.1.4常用的Docker Compose命令315 
15.2 Docker Machine 318 
15.2.1 Docker Machine簡介318 
15.2.2安裝Docker Machine 320 
15.2.3 Docker Machine常見命令321 
15.3 Docker Swarm 322 
15.3.1 Docker Swarm簡介322 
15.3.2 Docker Swarm結構323 
15.3.3使用Docker Swarm 323 
15.3.4 Docker Swarm常見命令325 
15.4本章小結327 

第16章Docker的技術架構328 
16.1命名空間328 
16.1.1關於Linux命名空間328 
16.1.2命名空間的系統 用329 
16.1.3命名空間的分類330 
16.2控制組332 
16.2.1關於Linux控制組332 
16.2.2 Cgroups的組成333 
16.2.3容器與控制組334 
16.3聯合文件系統336 
16.3.1關於UFS 336 
16.3. 2 Docker中的UFS 337 
16.4 Docker Engine架構338 
16.4.1 Docker Engine的組成結構338 
16.4.2 Docker Daemon 339 
16.4.3 Docker CLI 342 
16.5本章小結344