編輯推薦
適讀人群 :本書適閤Docker開發人員閱讀。 國內雲加速+雲存儲“迅雷雲”團隊傾力打造
全麵講解Docker原理、操作,精選實戰案例
詳解網絡、安全、API、Kubernetes、shipyard、Machine+Swarm+Compose
內容簡介
《Docker開發實踐》由淺入深地介紹瞭Docker的實踐之道,首先講解Docker的概念、容器和鏡像的相關操作、容器的數據管理等內容,接著通過不同類型的應用說明Docker的實際應用,然後介紹瞭網絡、安全、API、管理工具Fig、Kubernetes、shipyard以及Docker三件套(Machine+Swarm+Compose)等,列舉瞭常見鏡像、Docker API等內容。
作者簡介
曾金龍,計算機碩士,中山大學畢業,就職於迅雷網絡,國內覆蓋麵廣的“迅雷P2P引擎”核心研發成員。研究方嚮為P2P網絡、音視頻傳輸和CEP係統。對Docker技術有著深入的理解,是國內較早將Docker引入到實際軟件開發、測試和部署中的人。
肖新華,工學學士,衡陽師範學院畢業,項目架構師。4年互聯網軟件開發經驗,癡迷技術,對新生技術敏感。曾就職於迅雷網絡、騰訊科技。
劉清,碩士,華中科技大學畢業,就職於迅雷網絡,主要研究方嚮為移動下載庫、音視頻傳輸、調度策略設計等。
內頁插圖
精彩書評
★Docker是當之無愧的Go語言殺手級應用,並且現如今Docker這個詞的含義越來越豐富瞭,以至於它已經代錶瞭容器技術的生態圈。本書奉行實踐齣真知,其中的案例都非常棒。更為關鍵的是,其中的高級篇對Docker生態圈的各個新成員也做瞭非常翔實的介紹和實踐,這真的很難能可貴。
——郝林,Go語言北京用戶組發起人,《Go並發編程實戰》作者
★騰訊的互娛的開發節奏,隻有Docker跟得上!如果你想你的團隊加快開發速度,那麼我推薦你使用Docker,而本書從基礎、案例到高級話題,都有很全麵的覆蓋。
——易劍,騰訊互動娛樂事業群高級架構師
★這是一本關於Docker的好書,值得所有想瞭解Docker的人放在鍵盤左邊。
——李毅鞦,人人網技術總監
★雲計算的初級是數據的雲化,下一步是程序的雲化,而Docker則是當前程序雲化工具。讓你的程序一次配置,全網增量遷移、運行。本書齣自一綫互聯網研發人員之手,它是實戰的結晶,所涉案例都是互聯網公司的真實應用,對Docker的應用都不是淺嘗輒止,而是帶你登堂入室。
——潘嚮榮,迅雷看看高級技術經理
目錄
第一篇 基礎篇:Docker基礎
第1章 Docker簡介
1.1 Docker簡介
1.1.1 Docker的概念
1.1.2 Docker的背景
1.1.3 容器與虛擬機
1.1.4 Docker與容器
1.1.5 Docker的應用場景
1.2 Docker的組件
1.3 Docker的相關技術
1.4 Docker的安裝
1.4.1 Ubuntu下的安裝
1.4.2 Red Hat下的安裝
1.4.3 OS X下的安裝
1.4.4 Windows下的安裝
第2章 容器
2.1 容器的管理操作
2.1.1 創建容器
2.1.2 查看容器
2.1.3 啓動容器
2.1.4 終止容器
2.1.5 刪除容器
2.2 容器內信息獲取和命令執行
2.2.1 依附容器
2.2.2 查看容器日誌
2.2.3 查看容器進程
2.2.4 查看容器信息
2.2.5 容器內執行命令
2.3 容器的導入和導齣
第3章 鏡像
3.1 鏡像的概念
3.1.1 鏡像與容器
3.1.2 鏡像的係統結構
3.1.3 鏡像的寫時復製機製
3.2 本地鏡像的管理
3.2.1 查看
3.2.2 下載
3.2.3 刪除
3.3 創建本地鏡像
3.3.1 使用commit命令創建本地鏡像
3.3.2 使用Dockerfile創建鏡像
3.4 Docker Hub
3.4.1 Docker Hub簡介
3.4.2 鏡像的分發
3.4.3 自動化構建
3.4.4 創建注冊服務器
第4章 數據捲及容器連接
4.1 容器網絡基礎
4.1.1 暴露網絡端口
4.1.2 查看網絡配置
4.2 數據捲
4.2.1 創建數據捲
4.2.2 掛載主機目錄作為數據捲
4.2.3 掛載主機文件作為數據捲
4.2.4 數據捲容器
4.2.5 數據的備份與恢復
4.3 容器連接
4.3.1 容器命名
4.3.2 容器連接
4.3.3 代理連接
第二篇 案例篇:綜閤案例
第5章 創建SSH服務鏡像
5.1 基於commit命令的方式
5.2 基於Dockerfile的方式
第6章 綜閤案例1:Apache+PHP+MySQL
6.1 構建mysql 鏡像
6.1.1 編寫鏡像Dockerfile
6.1.2 構建和上傳鏡像
6.2 構建apache+php鏡像
6.2.1 編寫鏡像Dockerfile
6.2.2 構建和上傳鏡像
6.3 啓動容器
第7章 綜閤案例2:DLNNM
7.1 構建mongodb鏡像
7.1.1 編寫鏡像Dockerfile
7.1.2 構建和上傳鏡像
7.2 構建Node.js鏡像
7.2.1 項目源文件
7.2.2 編寫鏡像Dockerfile
7.2.3 構建和上傳鏡像
7.3 連接Node.js服務和MongoDB服務
7.3.1 製作代理鏡像mongoabassador
7.3.2 啓動MongoDB服務
7.3.3 啓動Node-Web-API服務
7.4 搭建前端Nginx
7.4.1 構建鏡像並運行
7.4.2 驗證Web應用
第8章 阿裏雲Docker開發實踐
8.1 阿裏雲Docker介紹
8.2 部署鏡像注冊服務器
8.3 開發
8.3.1 項目開發
8.3.2 製作和上傳鏡像
8.4 測試
8.5 部署
第9章 在阿裏雲上部署WordPress
9.1 初始化阿裏雲Docker環境
9.2 部署MySQL容器
9.3 部署WordPress容器
第10章 使用私有倉庫
10.1 使用docker-registry
10.2 用戶認證
第11章 使用Docker部署Hadoop集群
11.1 Hadoop簡介
11.2 構建Hadoop鏡像
11.3 構建Hadoop集群
11.3.1 Ambari簡介
11.3.2 部署Hadoop集群
第三篇 高級篇:高級話題、API、工具及集群管理
第12章 容器網絡
12.1 容器網絡的原理
12.1.1 基礎網絡工具
12.1.2 網絡空間虛擬化
12.1.3 網絡設備虛擬化
12.1.4 容器運行的4 種網絡模式
12.1.5 手動配置容器的網絡環境
12.2 配置及原理
12.2.1 基本配置
12.2.2 容器互聯配置及原理
12.2.3 容器內訪配置及原理
12.2.4 容器外訪配置及原理
12.2.5 創建點對點連接
12.3 網橋
12.3.1 配置網橋
12.3.2 構建自己的網橋
第13章 安全
13.1 命名空間
13.2 cgroups
13.3 Linux能力機製
第14章 DockerAPI
14.1 API 概述
14.2 綁定Docker後颱監聽接口
14.3 遠程API
14.3.1 容器相關的API
14.3.2 鏡像相關的API
14.4 平颱API
14.4.1 注冊服務器架構及流程
14.4.2 操作Hub API
14.5 API 實戰:docker-py庫編程
14.5.1 docker-py開發環境的搭建
14.5.2 docker-py庫編程
第15章 Fig
15.1 Fig簡介
15.2 Fig安裝
15.3 Rails開發環境配置
15.4 Django開發環境配置
15.5 WordPress開發環境配置
15.6 Flocker:跨主機的Fig應用
第16章 Kubernetes
16.1 Kubernetes簡介
16.2 核心概念
16.2.1 節點
16.2.2 Pod
16.2.3 服務
16.2.4 標簽
16.3 架構和組件
16.3.1 主控節點
16.3.2 從屬節點
16.3.3 組件交互流程
16.4 Kubernetes實戰
16.4.1 環境部署
16.4.2 應用操作
第17章 shipyard
17.1 簡介
17.2 shipyard操作
17.2.1 鑒權
17.2.2 引擎
17.2.3 容器
17.2.4 服務密鑰
17.2.5 Web鈎子密鑰
17.2.6 事件
17.2.7 集群信息
第18章 Machine+Swarm+Compose
18.1 Machine
18.2 Swarm
18.2.1 架構和組件
18.2.2 實操
18.2.3 發現服務和調度
18.3 Compose
第四篇 附錄
附錄A 常見鏡像
附錄B Docker API列錶
附錄C 參考資料
前言/序言
Docker從提齣到現在已經走過瞭兩年的時間,在這兩年裏,它一直都是雲 計算領域的熱點。可以說,它是2014年互聯網最熱門的技術。Docker得到Google、微軟、IBM、RedHat的聲援,而它也不負眾望,在這短短的兩年裏快速迭代,一步步變得更加完善。在Docker之前,開發者都深陷軟件環境的配置之苦,雖然說並不是所有的軟件配置都很難,但不同環境下的配置問題卻層齣不窮,相信很多讀者和我有類似的經曆,就是想用一款開源軟件,結果配置瞭許久都跑不起來,然後不得不放棄用它。而網上總是有很多的答疑,可是跟著照做,發現在自己的機器上就是跑不起來。環境差異,可能會讓原本簡單的問題復雜化,遲滯我們的開發進程。拿來主義對於懶惰的程序員來說是件好事,我們都希望拿來就用,這樣就可以專注於我們本該乾的活。對於測試人員和運維人員來說,也是如此,沒人喜歡處理這些本不該重點關注、處理不好卻會讓人寸步難行的問題。Docker就像一個打包器,可以把你的應用及其環境整體打包,然後很方便地遷移到不同的平颱,到處運行。在用戶看來就如同運行在原來的機器上一樣。或許該有人說我用虛擬機也可以實現同樣的效果,為什麼要選擇Docker。當兩樣東西都能夠做同一件事情時,我們比的是效率。你可以在一颱服務器上部署幾個或者十幾個虛擬機實例,但我相信沒人會在一颱服務器上部署上百個虛擬機實例,這是因為資源的限製。而在一颱服務器上部署上百個Docker容器卻並不是什麼難事。在鏡像的傳輸和共享方麵,Docker也做得非常好,它能夠隻傳輸那些改變瞭的數據,而不用像傳輸虛擬機鏡像那樣,動輒至少幾百兆。在共享方麵,Docker建立瞭DockerHub,你可以根據已有的鏡像定製自己的鏡像,而無需每次都再造輪子。如此接地氣的技術,怪不得業內都驚呼Docker是下一個Hadoop。
本書的起源
雖然Docker人氣旺盛,但關於Docker的書卻少之又少,更彆說汗牛充棟瞭,這主要是Docker齣現的時間尚短。對於已有的書,基礎內容不夠體係,大多隻停留寥寥幾個基礎命令的展示,並沒有很好地歸納整理;而高級篇又隻停留於粗淺的概念介紹,毫無實踐價值,特彆是對Docker具有很大作用的管理工具,例如Fig、Kubernetes、shipyard等內容,沒有一本書去係統講解它們。我們覺得這麼好的技術,應該有更為係統的書去讓更多的人瞭解它,理解它,這正是本書存在的價值。
如果不是遇到瞭王軍花編輯,或許就沒有本書,而正是在她的鼓勵下,纔讓我們有勇氣去將一些原本零碎的知識歸納整理為一本完整的書。
本書內容
本書主要介紹瞭Docker的實踐之道。我們按照由淺入深的編排將本書分為三篇。在基礎篇,主要是讓讀者認識Docker的概念和基礎操作,對比介紹瞭Docker和虛擬機等技術,從容器、鏡像、數據捲以及容器的連接等方麵說明Docker的操作。通過對基礎篇的學習,讀者不僅對Docker有瞭全局的認識,而且能夠對Docker的基礎操作得心應手。該篇包含第1章至第4章的內容。
第1章從概念上介紹瞭Docker,讓讀者對它的概念、背景、組件以及相關技術有瞭全局的認識。
第2章和第3章分彆介紹瞭容器和鏡像的相關操作,二者是Docker操作的核心對象。
第4章介紹瞭容器的網絡基礎、數據捲的配置以及多個容器之間的互聯。第二篇是案例篇。在這一篇中,我們通過不同類型的應用來說明Docker的實際應用。我們不做案例的簡單堆砌,而是通過不同類型的案例來說明各個知識點的應用,它包含第5章至第11章。
第5章介紹瞭如何創建SSH服務鏡像,這滿足瞭日常SSH遠程登錄的需求。
第6章構建瞭一個采用Apache作為Web服務器、PHP作為Web開發語言、MySQL作為數據庫的Web應用案例。
第7章構建瞭一個采用Node.js作為開發語言、MongoDB作為數據庫的Web案例,該案例著重說明瞭跨主機的多容器代理互聯。
第8章和第9章說明瞭如何在公共雲平颱——阿裏雲上部署Docker應用,這裏以WordPress為例進行介紹。
第10章介紹瞭如何使用私有倉庫。
第11章將雲計算的兩大熱點聯閤,說明瞭如何通過Docker來構建Hadoop鏡像及集群。第三篇是高級篇。在這一篇中,對Docker的API以及管理工具Fig、Kubernetes 、shipyard以及Docker三件套(Machine+Swarm+Compose)都有實踐操作,該篇包含第12章至第18章。
第12章介紹的是容器的高級網絡知識。
第13章從命名空間、cgroups、Linux能力機製以及服務端防護等方麵入手介紹瞭安全方麵的知識。
第14章則是通過curl工具來學習Docker的API接口,並給齣docker-py庫的編程實例。
在第15章至第18章中,我們分彆介紹瞭Fig、Kubernetes、shipyard以及Machine+Swarm+Compose三件套,這些都是為瞭更好地管理和使用Docker的工具。第四篇為附錄。在附錄A中,我們按照係統鏡像、數據庫鏡像、Web鏡像、語言 鏡像的類彆來編排,列舉瞭常見的鏡像,以供讀者查閱。附錄B是DockerAPI列錶的歸納整理,分為容器相關和鏡像相關,亦是為瞭方便讀者查閱。附錄C是我們在寫作過程中所用到的資料引用。
閱讀須知
閱讀本書時,最好能夠從前往後依序閱讀。特彆是基礎篇,是理解案例篇和高級篇的基石,讀者最好能夠讀完基礎篇,再閱讀案例篇和高級篇。在案例篇和高級篇中,章和章之間的聯係並沒有那麼緊密,例如第6章的案例和第7章的案例並沒有關聯,它們屬於側重點不同的案例,所以無需依序閱讀。高級篇的工具也是如此,讀者可以根據需求的迫切程度而選擇性閱讀。
目標讀者
一切想瞭解及深入理解Docker技術的人,都是本書的目標讀者。對於初級讀者,通過本書的基礎篇,你就可以成為一個能夠靈活應用Docker的人。當你對Docker有一定瞭解後,通過學習案例篇和高級篇,你也就可以登堂入室瞭。
緻謝
本書是很多人共同勞動的成果。三位作者要感謝一些人,感謝他們為本書所作齣的巨大貢獻和支持。
感謝在迅雷的同事:特彆感謝甘南南和潘嚮榮兩位的工作支持和悉心指導,感謝他們的慷慨大方,提供給我們充足的時間來寫作本書。此外,還需感謝的同事有塗海濤、李明良、吳小強、易萌萌、何贊裕、吳建國和何銳,感謝他們在成書過程中的寶貴意見。特彆感謝本書的編輯王軍花,沒有她,本書就隻能停留在筆者的腦海裏。她不僅僅是一位資深的計算機類圖書編輯,更像一名計算機專傢,本書很多內容都是在她的指點下得以完善。
本書還需緻謝的人有:盛建強博士、高懷恩博士、廣發證券信息部的劉潤佳和周英貴、美團網的蔣朋、百度的徐則水和羅劍波、騰訊的楊曉穎和鄭剋鬆、阿裏巴巴的田曉嬌以及李海龍、邱俊淩、楊文武、劉匯洋、馮學漢等人。感謝他們讓各自公司相關平颱成為本書部分案例的嘗鮮者,並提齣瞭諸多寶貴意見。
最後,感謝我們的傢人。沒有你們的支持,就沒有這一切。
Docker開發實踐 下載 mobi epub pdf txt 電子書 格式