《Linux虛擬化原理、方法和實(shí)戰(zhàn)(KVM Docker OpenStack)》從實(shí)用的角度出發(fā),詳細(xì)介紹了Linux虛擬化相關(guān)的理論與應(yīng)用知識(shí),包括企業(yè)級(jí)KVM虛擬化實(shí)戰(zhàn)、企業(yè)級(jí)Docker虛擬化實(shí)戰(zhàn)、Docker企業(yè)命令實(shí)戰(zhàn)、Docker網(wǎng)絡(luò)原理實(shí)戰(zhàn)、Dockerfile企業(yè)鏡像實(shí)戰(zhàn)、Docker倉(cāng)庫(kù)案例實(shí)戰(zhàn)、Docker Compose容器編排實(shí)戰(zhàn)、Docker Swarm集群案例實(shí)戰(zhàn)、OpenStack KVM構(gòu)建企業(yè)級(jí)私有云。 《Linux虛擬化原理、方法和實(shí)戰(zhàn)(KVM Docker OpenStack)》免費(fèi)提供與書中內(nèi)容相關(guān)的視頻課程講解,以指導(dǎo)讀者深入地進(jìn)行學(xué)習(xí),詳見前言中的說明。 《Linux虛擬化原理、方法和實(shí)戰(zhàn)(KVM Docker OpenStack)》既可作為高等學(xué)校計(jì)算機(jī)相關(guān)專業(yè)的教材,也可作為系統(tǒng)管理員、網(wǎng)絡(luò)管理員、Linux運(yùn)維工程師及網(wǎng)站開發(fā)、測(cè)試、設(shè)計(jì)等人員的參考用書。
本叢書融入作者十多年Linux運(yùn)維經(jīng)驗(yàn),盡是干貨。通過對(duì)Linux技術(shù)領(lǐng)域重要知識(shí)點(diǎn)的剖析及簡(jiǎn)單明了的實(shí)例介紹,幫助讀者在較短的時(shí)間內(nèi)掌握Linux云計(jì)算相關(guān)運(yùn)維技能,成為專業(yè)的Linux高級(jí)技術(shù)人才。書中結(jié)構(gòu)清晰,內(nèi)容全面,由淺入深,講解很詳細(xì),是難得的將理論 概念 實(shí)戰(zhàn)結(jié)合于一體的書籍,十分適合作為手邊的實(shí)戰(zhàn)參考書,相信能給讀者帶來新的想法和收獲。
Linux 是當(dāng)今三大操作系統(tǒng)(Windows、macOS、Linux)之一,其創(chuàng)始人是林納斯·托瓦茲①。
林納斯·托瓦茲 21 歲時(shí)用 4 個(gè)月的時(shí)間首次創(chuàng)建了 Linux 內(nèi)核,于 1991 年 10 月 5 日正式對(duì)
外發(fā)布。Linux 系統(tǒng)繼承了 UNIX 系統(tǒng)以網(wǎng)絡(luò)為核心的思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操
作系統(tǒng)。
20 世紀(jì) 90 年代至今,互聯(lián)網(wǎng)飛速發(fā)展,IT 引領(lǐng)時(shí)代潮流,而 Linux 系統(tǒng)是一切 IT 的基石,
其應(yīng)用場(chǎng)景涉及方方面面,小到個(gè)人計(jì)算機(jī)、智能手環(huán)、智能手表、智能手機(jī)等設(shè)備,大到服
務(wù)器、云計(jì)算、大數(shù)據(jù)、人工智能、數(shù)字貨幣、區(qū)塊鏈等領(lǐng)域。
為什么寫《Linux 虛擬化原理、方法和實(shí)戰(zhàn)(KVM Docker OpenStack)》這本書?這要
從我的經(jīng)歷說起。我出生在貴州省一個(gè)貧困的小山村,從小經(jīng)歷了砍柴、放牛、挑水、做飯,
日出而作、日落而歸的樸素生活,看到父母一輩子都生活在小山村里,沒有見過大城市,所以
從小立志要走出大山,要讓父母過上幸福的生活。正是這樣的信念讓我不斷地努力。大學(xué)畢業(yè)
至今,我在北漂的 IT 運(yùn)維路上已走過了十多年:從初創(chuàng)小公司到國(guó)有企業(yè)、機(jī)關(guān)單位,再
到圖吧、研修網(wǎng)、京東商城等 IT 企業(yè),分別擔(dān)任過 Linux 運(yùn)維工程師、Linux 運(yùn)維架構(gòu)師、運(yùn)維
經(jīng)理,直到現(xiàn)在創(chuàng)辦的京峰教育培訓(xùn)機(jī)構(gòu)。
一路走來,很感謝生命中遇到的每一個(gè)人,是大家的幫助,讓我不斷地進(jìn)步和成長(zhǎng),也讓
我明白了一個(gè)人活著不應(yīng)該只為自己和自己的家人,還要考慮到整個(gè)社會(huì),哪怕只能為社會(huì)貢
獻(xiàn)一點(diǎn)點(diǎn)價(jià)值,人生就是精彩的。
為了幫助更多的人通過技術(shù)改變自己的命運(yùn),我決定和團(tuán)隊(duì)同事一起編寫這本書。雖然市
面上關(guān)于 Linux 的書籍有很多,但是很難找到一本關(guān)于企業(yè)級(jí) KVM 虛擬化實(shí)戰(zhàn)、企業(yè)級(jí) Docker
虛擬化實(shí)戰(zhàn)、Docker 企業(yè)命令實(shí)戰(zhàn)、Docker 網(wǎng)絡(luò)原理實(shí)戰(zhàn)篇、Dockerfile企業(yè)鏡像實(shí)戰(zhàn)、Docker
倉(cāng)庫(kù)案例實(shí)戰(zhàn)、Docker Compose 容器編排實(shí)戰(zhàn)、Docker Swarm 集群案例實(shí)戰(zhàn)、OpenStack KVM
構(gòu)建企業(yè)級(jí)私有云等內(nèi)容的詳細(xì)、全面的主流技術(shù)書籍,這就是編寫本書的初衷。
① 創(chuàng)始人全稱是 Linus Benedict Torvalds(林納斯·本納第克特·托瓦茲)。
II Linux 虛擬化原理、方法和實(shí)戰(zhàn)(KVM Docker OpenStack)
配套資源
程序代碼、面試題目、學(xué)習(xí)路徑、工具手冊(cè)、簡(jiǎn)歷模板等資料,請(qǐng)掃描下方二維碼下載
或者到清華大學(xué)出版社官方網(wǎng)站本書頁(yè)面下載。
配套資源
作者精心錄制了與 Linux 開發(fā)相關(guān)的視頻課程(3000 分鐘,144 集),便于讀者自學(xué)。掃
描封底文泉課堂刮刮卡中的二維碼進(jìn)行綁定后即可觀看(注:視頻內(nèi)容僅供學(xué)習(xí)參
考,與書中內(nèi)容并非一一對(duì)應(yīng))。
雖然已花費(fèi)大量的時(shí)間和精力核對(duì)書中的代碼和內(nèi)容,但難免存在紕漏,懇請(qǐng)讀者批評(píng)
指正。
吳光科
2023 年 3 月
前 言
致謝
ACKNOWLEDGEMENT
感謝 Linux 之父林納斯·托瓦茲,他不僅創(chuàng)造了 Linux 系統(tǒng),還影響了整個(gè)開源世界,也影
響了我的一生。
感謝我親愛的父母,含辛茹苦地?fù)狃B(yǎng)我們兄弟三人,是他們對(duì)我無微不至的照顧,讓我有
更多的精力和動(dòng)力去工作,去幫助更多的人。
感謝何紅敏、周孝坤、楊政平、洛遠(yuǎn)、譚慶松、李濤、張強(qiáng)、劉峰、郭大德、田文杰、柴
宗虎、張馨、佘仕星、李燊、岳曉勇及其他摯友多年來對(duì)我的信任和鼓勵(lì)。
感謝騰訊課堂所有的課程經(jīng)理及平臺(tái)老師,感謝 51CTO 副總裁一休及全體工作人員對(duì)我及
京峰教育培訓(xùn)機(jī)構(gòu)的大力支持。
感謝京峰教育培訓(xùn)機(jī)構(gòu)的每位學(xué)員對(duì)我的支持和鼓勵(lì),希望他們都學(xué)有所成,最終成為社
會(huì)的中流砥柱。感謝京峰教育首席運(yùn)營(yíng)官蔡正雄,感謝京峰教育培訓(xùn)機(jī)構(gòu)的辛老師、朱老師、
張老師、關(guān)老師、兮兮老師、小江老師、可馨老師等全體老師和助教、班長(zhǎng)、副班長(zhǎng),是他們
的大力支持,讓京峰教育能夠幫助更多的學(xué)員。
最后要感謝我的愛人黃小紅,是她一直在背后默默地支持我、鼓勵(lì)我,讓我有更多的精力
和時(shí)間去完成這本書。
吳光科
2023 年 3 月
第 1 章 企業(yè)級(jí) KVM 虛擬化實(shí)戰(zhàn).1
1.1 虛擬化技術(shù)概述及簡(jiǎn)介.1
1.2 互聯(lián)網(wǎng)虛擬化技術(shù)種類.2
1.3 KVM 虛擬化概念 .2
1.4 KVM 虛擬化安裝 .3
1.5 KVM 網(wǎng)橋配置實(shí)戰(zhàn) .3
1.6 KVM 虛擬化硬盤擴(kuò)容 .7
1.7 KVM 虛擬機(jī)批量克隆實(shí)戰(zhàn) .8
1.8 ESXI 虛擬化技術(shù)概念 .10
1.9 XEN 虛擬化技術(shù)概念11
第 2 章 企業(yè)級(jí) Docker 虛擬化實(shí)戰(zhàn) 12
2.1 虛擬化技術(shù)實(shí)現(xiàn)方式.14
2.2 Docker LXC 及 Cgroup 原理剖析.14
2.3 AUFS 簡(jiǎn)介 17
2.4 Device Mapper 文件系統(tǒng)簡(jiǎn)介18
2.5 OverlayFS 簡(jiǎn)介19
2.6 為什么使用 Docker.21
2.7 Docker 鏡像、容器、倉(cāng)庫(kù) 22
2.8 Docker 鏡像原理剖析 22
2.9 CentOS 7.x(7.0 )Linux Docker 平臺(tái)實(shí)戰(zhàn) .25
2.10 CentOS 8.x(8.0 )Linux Docker 平臺(tái)實(shí)戰(zhàn) .27
2.11 Ubuntu(16.04 )Linux Docker 平臺(tái)實(shí)戰(zhàn) .29
2.12 Docker 倉(cāng)庫(kù)源更新實(shí)戰(zhàn) 31
第 3 章 Docker 企業(yè)命令實(shí)戰(zhàn). 33
3.1 Docker search 命令實(shí)戰(zhàn) .33
3.2 Docker pull 命令實(shí)戰(zhàn) .33
3.3 Docker images 命令實(shí)戰(zhàn).34
3.4 Docker run 命令實(shí)戰(zhàn) 34
3.5 Docker ps 命令實(shí)戰(zhàn)34
3.6 Docker inspect 命令實(shí)戰(zhàn) 34
VI Linux 虛擬化原理、方法和實(shí)戰(zhàn)(KVM Docker OpenStack)
3.7 Docker exec 命令實(shí)戰(zhàn) 35
3.8 Docker stop|start 命令實(shí)戰(zhàn) .35
3.9 Docker rm 命令實(shí)戰(zhàn) .35
3.10 Docker rmi 命令實(shí)戰(zhàn) 36
3.11 Docker 虛擬化 30 多個(gè)命令實(shí)戰(zhàn)剖析 36
第 4 章 Docker 網(wǎng)絡(luò)原理實(shí)戰(zhàn). 38
4.1 Host 模式剖析.38
4.2 Container 模式剖析.39
4.3 None 模式剖析39
4.4 Bridge 模式剖析 .39
4.5 Bridge 模式原理剖析 .40
4.6 Bridge 模式實(shí)戰(zhàn)一 .41
4.7 Bridge 模式實(shí)戰(zhàn)二 .41
4.8 Bridge 模式實(shí)戰(zhàn)三 .42
4.9 Bridge 模式實(shí)戰(zhàn)四 .43
4.10 Docker 持久化固定容器 IP44
4.11 EFK 應(yīng)用背景剖析 46
4.12 EFK 架構(gòu)原理深入剖析 47
4.13 Docker 部署 EFK 日志平臺(tái) .48
4.14 基于 Docker Web 管理 Docker 容器50
第 5 章 Dockerfile 企業(yè)鏡像實(shí)戰(zhàn) 55
5.1 Dockerfile 語(yǔ)法命令詳解一 .55
5.2 Dockerfile 語(yǔ)法命令詳解二 .56
5.3 Dockerfile 制作規(guī)范及技巧 .61
5.4 Dockerfile 企業(yè)案例一 .61
5.5 Dockerfile 企業(yè)案例二 .62
5.6 Dockerfile 企業(yè)案例三 .63
5.7 Dockerfile 企業(yè)案例四 .64
第 6 章 Docker 倉(cāng)庫(kù)案例實(shí)戰(zhàn). 65
6.1 Docker 國(guó)內(nèi)源實(shí)戰(zhàn).65
6.2 Docker Registry 倉(cāng)庫(kù)源實(shí)戰(zhàn) 66
6.3 Docker Harbor 倉(cāng)庫(kù)源實(shí)戰(zhàn) 68
6.4 Docker 磁盤、內(nèi)存、CPU 資源實(shí)戰(zhàn)一73
6.5 Docker 磁盤、內(nèi)存、CPU 資源實(shí)戰(zhàn)二76
6.6 Docker 資源監(jiān)控方案和監(jiān)控實(shí)戰(zhàn) 81
6.7 Docker stats 監(jiān)控工具 81
目錄 VII
6.8 CAdvisor 監(jiān)控工具 .83
6.9 CAdvisor 部署配置 .83
6.10 構(gòu)建 CAdvisor InfluxDB Grafana 平臺(tái).85
第 7 章 Docker Compose 容器編排實(shí)戰(zhàn). 89
7.1 Docker Compose 概念剖析 .89
7.2 Docker Compose 部署安裝 .90
7.3 Docker Compose 命令實(shí)戰(zhàn) .90
7.4 Docker Compose 常見概念 .91
7.5 Docker Compose 語(yǔ)法詳解 .91
7.6 Docker Compose Nginx 案例一.99
7.7 Docker Compose Redis 案例二 .101
7.8 Docker Compose Tomcat 案例三.102
7.9 Docker Compose RocketMQ 案例四 .105
第 8 章 Docker Swarm 集群案例實(shí)戰(zhàn) . 110
8.1 Swarm 概念剖析 .110
8.2 Docker Swarm 的優(yōu)點(diǎn) .111
8.3 Swarm 負(fù)載均衡 .112
8.4 Swarm 架構(gòu)圖113
8.5 Swarm 節(jié)點(diǎn)及防火墻設(shè)置 .114
8.6 Docker 虛擬化案例實(shí)戰(zhàn) 115
8.7 Swarm 集群部署 .116
8.8 Swarm 部署 Nginx 服務(wù) 117
8.9 Swarm 服務(wù)擴(kuò)容和升級(jí) .118
8.10 Manager 和 Node 角色切換120
8.11 Swarm 數(shù)據(jù)管理之 volume.121
8.12 Swarm 數(shù)據(jù)管理之 Bind.121
8.13 Swarm 數(shù)據(jù)管理之 NFS .123
8.14 Docker Swarm 新增節(jié)點(diǎn) .124
8.15 Docker Swarm 刪除節(jié)點(diǎn) .127
8.16 Docker 自動(dòng)化部署一 128
8.17 Docker 自動(dòng)化部署二 132
第 9 章 OpenStack KVM 構(gòu)建企業(yè)級(jí)私有云. 138
9.1 OpenStack 入門簡(jiǎn)介.138
9.2 OpenStack 核心組件.139
9.3 OpenStack 準(zhǔn)備環(huán)境.141
9.4 Hosts 及防火墻設(shè)置.141
VIII Linux 虛擬化原理、方法和實(shí)戰(zhàn)(KVM Docker OpenStack)
9.5 OpenStack 服務(wù)安裝.142
9.6 MQ(消息隊(duì)列)簡(jiǎn)介.143
9.7 MQ 應(yīng)用場(chǎng)景 144
9.8 安裝配置 RabbitMQ .146
9.9 RabbitMQ 消息測(cè)試 .148
9.10 配置 Keystone 驗(yàn)證服務(wù) 149
9.11 配置 Glance 鏡像服務(wù)155
9.12 Nova 控制節(jié)點(diǎn)配置158
9.13 Nova 計(jì)算節(jié)點(diǎn)配置161
9.14 OpenStack 節(jié)點(diǎn)測(cè)試.165
9.15 Neutron 控制節(jié)點(diǎn)配置 .166
9.16 Neutron 計(jì)算節(jié)點(diǎn)配置 .171
9.17 OpenStack 控制節(jié)點(diǎn)網(wǎng)橋.173
9.18 控制節(jié)點(diǎn)配置 Dashboard.175
9.19 OpenStack GUI 配置 .191
9.20 OpenStack 核心流程.199