作 者:熊昌隆 著
定 價:69
出 版 社:電子工業出版社
出版日期:2017年06月01日
頁 數:364
裝 幀:簡裝
ISBN:9787121314278
適合不同開發者的Docker工具書!內容全面:基礎命令、進階用法悉數囊括,知識點全覆蓋。活學活用:大量實踐案例展示,指導上手使用,深化理解。知識新鮮:以很新文檔、材料為基礎,跟進Docker演進的步伐。
●目 錄部分 基礎篇章 初識Docker11.1 虛擬化21.1.1 虛擬化技術21.1.2 虛擬化的分類41.2 容器技術與Docker61.2.1 容器技術61.2.2 Docker簡介81.2.3 改變世界的發明101.3 Docker的安裝101.3.1 在Ubuntu中安裝Docker111.3.2 在CentOS中安裝Docker121.3.3 在Windows中安裝Docker131.3.4 在Mac OS中安裝Docker151.3.5 在其他繫統中安裝Docker161.4 Docker的優勢171.4.1 革命性的虛擬化方案171.4.2 高效的容器技術181.4.3 社區的力量191.5 Docker的應用場景201.5.1 超短時間部署運行201.5.2 節約遷移時間211.6 本章小結21第2章 鏡像與倉庫222.1 鏡像的概念222.1.1 聯合文件繫統222.1.2 Docker中的鏡像232.1.3 鏡像的分層結構242.1.4 鏡像的寫時復制252.2 使用和管理鏡像262.2.1 獲取鏡像262.2.2 列出鏡像282.2.3 獲得鏡像的詳細信息282.2.4 刪除鏡像312.2.5 鏡像的遷移322.3 Docker Hub332.3.1 鏡像倉庫332.3.2 Docker Hub342.3.3 注冊Docker Hub賬號352.3.4 搜索鏡像362.3.5 共享自動構建鏡像382.4 搭建私有倉庫402.4.1 鏡像分發服務402.4.2 Docker Registry HTTP API412.4.3 部署私有倉庫422.5 本章小結44第3章 管理和使用容器453.1 管理容器453.1.1 創建容器453.1.2 容器的啟動過程483.1.3 列出容器493.1.4 容器的命名513.1.5 啟動和停止523.1.6 暫停和恢復533.1.7 重啟容器543.1.8 刪除容器553.2 連接到容器553.2.1 查看進程信息563.2.2 查看容器信息563.2.3 容器日志623.2.4 銜接到容器633.2.5 在容器中執行命令643.3 容器的保存與遷移653.3.1 提交容器更改653.3.2 容器的導入/導出683.4 本章小結70第4章 數據卷與網絡714.1 數據卷714.1.1 關於數據卷714.1.2 數據卷的特點724.1.3 創建數據卷734.1.4 掛載數據卷744.1.5 刪除數據卷764.2 數據卷容器774.2.1 關於數據卷容器774.2.2 創建數據卷容器784.2.3 連接數據卷容器794.2.4 數據卷的遷移804.3 網絡基礎824.3.1 網絡簡介824.3.2 查看網絡配置834.4 網絡訪問854.4.1 宿主機端口映射854.4.2 容器連接874.5 本章小結90第5章 制作鏡像915.1 了解Dockerfile915.1.1 Dockerfile簡介925.1.2 使用Dockerfile創建鏡像945.2 基礎指令965.2.1 FROM975.2.2 MAINTAINER975.3 控制指令975.3.1 RUN975.3.2 WORKDIR995.3.3 ONBUILD995.4 引入指令1005.4.1 ADD1005.4.2 COPY1025.5 執行指令1025.5.1 CMD1025.5.2 ENTRYPOINT1045.6 配置指令1075.6.1 EX E1085.6.2 ENV1085.6.3 LABEL1095.6.4 USER1105.6.5 ARG1115.6.6 STOPSIGNAL1125.6.7 SHELL1135.7 特殊用法1135.7.1 環境變量1135.7.2 指令解析1145.7.3 忽略文件1165.8 本章小結117第二部分 實踐篇第6章 SSH服務1186.1 在Docker中使用SSH1186.1.1 SSH簡介1196.1.2 SSH使用方法簡介1196.1.3 數據卷管理容器1216.1.4 使用SSH服務容器1226.2 構建SSH服務鏡像1246.2.1 構建方式比較1246.2.2 通過提交構建1256.2.3 使用Dockerfile構建1276.3 本章小結131第7章 Web服務器1327.1 Web服務簡介1327.1.1 萬維網與網站1327.1.2 Web服務1337.1.3 Web服務程序1357.2 Apache1357.2.1 Apache簡介1357.2.2 安裝Apache1367.2.3 構建Apache鏡像1397.2.4 測試Apache容器1427.3 Nginx1437.3.1 關於Nginx1437.3.2 安裝Nginx1447.3.3 構建Nginx鏡像1467.3.4 測試Nginx鏡像1487.4 Tomcat1487.4.1 Tomcat簡介1497.4.2 安裝Tomcat1497.4.3 構建Tomcat鏡像1527.5 本章小結153第8章 數據庫程序1558.1 MySQL1558.1.1 MySQL簡介1568.1.2 安裝MySQL1568.1.3 構建MySQL鏡像1628.1.4 測試MySQL容器1648.2 MongoDB1668.2.1 MongoDB簡介1668.2.2 安裝MongoDB1678.2.3 構建MongoDB鏡像1718.2.4 測試MongoDB容器1738.3 本章小結176第9章 緩存工具1779.1 Memcached1789.1.1 Memcached簡介1789.1.2 安裝Memcached1799.1.3 構建Memcached鏡像1849.1.4 測試Memcached容器1869.2 Redis1889.2.1 Redis簡介1889.2.2 安裝Redis1889.2.3 構建Redis鏡像1939.2.4 測試Redis容器1959.3 本章小結1960章 動態處理程序19710.1 Java19710.1.1 Java簡介19810.1.2 安裝Java19810.1.3 構建Java鏡像20410.1.4 測試Java容器20610.2 PHP20710.2.1 PHP簡介20710.2.2 安裝PHP20810.2.3 構建PHP鏡像21410.2.4 測試PHP容器21610.3 Python21710.3.1 Python簡介21710.3.2 安裝Python21810.3.3 構建Python鏡像22310.3.4 測試Python容器22410.4 Node.js22510.4.1 Node.js簡介22510.4.2 安裝Node.js22610.4.3 構建Node.js鏡像22810.4.4 測試Node.js容器23010.5 本章小結2311章 綜合演練23211.1 演練目標23211.1.1 目標概述23211.1.2 代碼編寫23311.2 環境搭建23711.2.1 準備鏡像23711.2.2 程序配置23911.3 項目運行24811.3.1 啟動容器24811.3.2 測試項目24911.4 本章小結253第三部分 提高篇2章 網絡進階25412.1 網絡實現25412.1.1 容器網絡基礎25512.1.2 網絡模型25712.2 Docker中的網絡25812.2.1 默認網絡25812.2.2 自定義網絡26112.2.3 容器與外部通信26212.2.4 容器間通信26412.3 網絡實踐26512.3.1 管理容器網絡26512.3.2 容器連接網絡26712.3.3 配置docker0網橋26912.3.4 自定義網橋27112.3.5 配置DNS27112.3.6 使用IPv627312.4 本章小結2743章 安全加固27513.1 深入理解Docker安全27513.1.1 命名空間隔離27613.1.2 資源控制組27713.1.3 內核能力機制27713.2 資源使用27813.2.1 通過控制組27813.2.2 通過ulimit28013.2.3 網絡訪問28013.3 校驗與監控28113.3.1 鏡像簽名28113.3.2 運行狀態監控28313.4 聯級防護28413.4.1 組合虛擬化28413.4.2 文件繫統安全28413.5 內核安全技術28513.5.1 Capability28613.5.2 SELinux28713.5.3 AppArmor28813.6 本章小結2894章 Docker API29014.1 關於Docker API29014.1.1 通用操作接口29014.1.2 關於RESTful29114.1.3 Docker API的優勢29214.1.4 Docker API的分類29314.2 使用Docker Remote API29314.2.1 關於Docker Remote API29414.2.2 Docker Remote API的版本29914.2.3 通過Remote API列出容器30014.2.4 通過Remote API列出鏡像30214.3 使用Docker Registry API30314.3.1 關於Docker Registry API30414.3.2 Docker Registry API的主要功能30414.3.3 Docker Registry API的版本30514.3.4 通過Registry API拉取鏡像30614.3.5 通過Registry API推送鏡像30714.4 本章小結3095章 管理工具31015.1 Docker Compose31015.1.1 Docker Compose簡介31115.1.2 安裝Docker Compose31315.1.3 Docker Compose配置文件31415.1.4 常用的Docker Compose命令31515.2 Docker Machine31815.2.1 Docker Machine簡介31815.2.2 安裝Docker Machine32015.2.3 Docker Machine常見命令32115.3 Docker Swarm32215.3.1 Docker Swarm簡介32215.3.2 Docker Swarm結構32315.3.3 使用Docker Swarm32315.3.4 Docker Swarm常見命令32515.4 本章小結3276章 Docker的技術架構32816.1 命名空間32816.1.1 關於Linux命名空間32816.1.2 命名空間的繫統調用32916.1.3 命名空間的分類33016.2 控制組33216.2.1 關於Linux控制組33216.2.2 Cgroups的組成33316.2.3 容器與控制組33416.3 聯合文件繫統33616.3.1 關於UFS33616.3.2 Docker中的UFS33716.4 Docker Engine架構33816.4.1 Docker Engine的組成結構33816.4.2 Docker Daemon33916.4.3 Docker CLI34216.5 本章小結344
作為引領近幾年容器虛擬化領域的技術,Docker的發展方興未艾。但由於其出現不過數年,關於它的資料,特別是中文資料仍然相對匱乏,導致靠前許多開發者對其感到陌生。本書正是以布道Docker為理念,由淺入深地從闡述Docker的基本概念、講解常規使用方法、進行操作實踐的演示、展示提高和進階用法、剖析內部原理和底層架構等多個方面,全方面的展現Docker所具有的魅力。本書由概念及至實踐,從不同方面向讀者展現了Docker,實用性很好強,既可以作為一本學習Docker的入門教材,也能作為進行Docker操作實踐的說明書,甚至可以作為提高和進階的知識寶庫。不論是對Docker認知程度不同,有著不同知識儲備的人,還是處於程序軟件研發部署流程中的開發人員、測試人員或運維人員,本書都有著很強的可閱讀性。
熊昌隆 著
熊昌隆,資深架構師,Web全棧開發者,知名博主,Beaver框架作者,開源小組Funcuter的發起者,致力於新興技術的研究和推廣。早年參與智慧路由的研究,多項研究成果影響了家用路由器的發展。設計實現的Beaver框架,已經應用於千萬級繫統的底層程序架構中。發起組建的Funcuter開源小組,旨在聚集靠前的很好開源項目和開發者,目前已經擁有多個開源項目。近年來一直致力於前沿技術的研究和推廣,希望讓更多的開發者更輕松的接觸、了解很新興科技成果,並應用於開發實踐中。
前 言在快速發展的互聯網領域,總在湧現引領潮流的新技術,最近幾年,Docker就成為了這些技術中的一員。Docker作為近幾年備受關注的程序部署方案,實現了程序的快速部署,為分布式等場景下的部署提供了有力的幫助。在雲計算以及虛擬化領域,Docker這個誕生不過數年的項目,隻能算是新生兒,在功能完整性和穩定性方面,都不及其他已經經受過歷史考驗的項目。但為何僅僅幾年的風光,就讓Docker成為了業界公認的優秀項目,關鍵在於Docker真正解決了分布式部署效率這一行業痛點。Docker所提供的嶄新分布式部署方案,不但像其他虛擬化方案一樣,大幅減低了部署過程中適配環境所帶來的額外工作,還充分弱化了虛擬化程序在虛擬化過程中對性能的影響,使得在Docker中運行的程序的效率能夠與直接運行在真實操作繫統中的程序的效率相媲美。不過Docker能夠受到各界追捧的原因並不僅僅在於其在部署等