Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic構建和部署
內容描述
Docker容器是Linux系統及雲環境上運行Docker的實用指南。書中全面講解創建、運行、停止、啟動、保存和管理容器的具體方法,同時也涉及了多容器管理的主題。Docker容器內容分成5個部分。diyi部分開啟容器之旅,介紹開始使用Docker容器所需瞭解的知識;第二部分關註單個容器,主要介紹如何通過docker命令直接使用單個容器;第三部分主題是在雲環境上運行容器,描述如何運行超級特權容器(SPC),以及如何使用Cockpit在雲環境或者本地環境下跨多個宿主機管理容器;第四部分重點是管理多容器,探究容器的編排(利用Kubernetes);第五部分專註於開發容器,描述一些開發Docker容器的建議和技巧,zui後通過展示一些Dockerfile文件闡述如何構建容器。
目錄大綱
第一部分開啟容器之旅
第1章使用Docker對應用進行容器化2
1.1了解容器化應用的優缺點2
1.1.1容器化應用不是直接在宿主機上運行的應用3
1.1.2容器化應用不是直接在虛擬機上運行的應用3
1.1.3了解容器的優點3
1.1.4了解容器化應用面臨的挑戰4
1.2了解容器的組成5
1.2.1 Docker項目5
1.2.2 Docker Hub Registry 6
1.2.3 Docker鏡像和容器7
1.2.4 docker命令7
1.3探究容器9
1.4小結10
第2章搭建容器運行時環境11
2.1標準Linux系統的Docker配置12
2.1.1 Ubuntu的Docker配置12
2.1.2 Fedora的Docker配置14
2.1.3 Red Hat Enterprise Linux的Docker配置17
2.1.4其他操作系統的Docker配置19
2.2容器式Linux系統的Docker配置20
2.2.1 Atomic Host的Docker配置21
2.2.2 CoreOS的Docker配置23
2.3小結25
第3章搭建私有Docker Registry 26
3.1獲取和啟動私有Docker registry 27
3.1.1在Fedora中搭建Docker registry 27
3.1.2在Ubuntu中搭建Docker registry 30
3.2配置 私有Docker registry 32
3.2.1配置docker-registry包32
3.2.2配置registry容器35
3.3了解Docker鏡像命名空間35
3.4小結37
第二部分玩轉單個容器
第4章運行容器鏡像40
4.1以交互方式運行容器鏡像42
4.1.1啟動交互Bash shell 42
4.1.2玩些基於字符的遊戲44
4.1.3在容器內運行管理命令45
4.2運行容器化服務46
4.2.1運行容器化Web服務器46
4.2.2在容器中運行服務時進行資源限制48
4.3運行特權容器49
4.4小結50
第5章查找、拉取、保存和裝載容器鏡像51
5.1搜索鏡像51
5.1.1用docker命令搜索鏡像52
5.1.2在Docker Hub上檢索鏡像54
5.2其他repository 55
5.3從Registry拉取鏡像57
5.4保存和裝載鏡像60
5.5小結61
第6章為鏡像添加標籤62
6.1為鏡像分配名稱63
6.2為鏡像分配標籤64
6.3為鏡像分配repository名65
6.3.1為鏡像附加用戶名65
6.3.2為鏡像附加repository名67
6.4小結68
第7章探究容器69
7.1檢視鏡像和容器69
7.2檢 鏡像70
7.2.1用docker inspect檢視基礎鏡像70
7.2.2用docker inspect檢視應用程序鏡像72
7.2.3查看鏡像的歷史73
7.3檢視正在運行的容器73
7.3.1啟動要檢視的容器73
7.3.2檢視整個容器配置74
7.3.3檢視單個容器屬性78
7.3.4檢視運行終端會話的容器79
7.3.5檢視容器的內存和CPU限制80
7.3.6檢視容器的SELinux上下文81
7.4尋找探查容器的更多方法82
7.4.1用docker top查看容器進程82
7.4.2用docker attach與容器內服務進行交互83
7.4.3用docker exec在正在運行的容器中啟動新進程83
7.4.4用docker logs查看容器進程的輸出84
7.4.5用docker diff查看容器的變化84
7.4.6用docker cp從容器複製文件85
7.5小結85
第8章容器的啟動、停止與重啟86
8.1停止和啟動容器86
8.1.1停止和啟動分離的容器87
8.1.2啟動和停止交互式容器88
8.2重啟容器89
8.3向容器發送信號90
8.4暫停容器與取消暫停91
8.5等待容器的退出代碼 91
8.6重命名容器92
8.7創建容器92
8.8小結93
第9章配置容器的存儲95
9.1管理容器的存儲95
9.1.1使用宿主機的捲95
9.1.2數據卷容器97
9.1.3對掛載寫保護97
9.1.4掛載設備98
9.1.5掛載套接字98
9.2 Docker宿主機的存儲策略99
9.2.1附加外部存儲到Docker宿主機101
9.2.2使用邏輯捲管理器擴展存儲101
9.3小結103
第10章配置容器網絡104
10.1將端口暴露給其他容器105
10.2將端口映射到宿主機外部106
10.2.1從被鏈接的容器映射端口106
10.2.2鏈接不同宿主機上的容器108
10.3 docker0網橋的替代方法109
10.3.1改變容器的網絡模式109
10.3.2細查網絡選項109
10.4修改Docker網橋111
10.5小結112
第11章清理容器113
11.1為鏡像和容器準備空間113
11.2刪除鏡像114
11.2 .1刪除單個鏡像114
11.2.2刪除多個鏡像116
11.3刪除容器117
11.3.1刪除單個容器117
11.3.2刪除多個容器119
11.4清理和保存容器119
11.4.1清理和保存 Ubuntu容器120
11.4.2清理和保存Fedora容器120
11.5小結121
第12章構建容器鏡像122
12.1進行簡單的Docker構建123
12.2通過Dockerfile設置要執行的命令125
12.2.1使用CMD指令125
12.2.2使用ENTRYPOINT指令126
12.2.3使用RUN指令127
12.2.4通過Dockerfile向鏡像添加文件128
12.3通過Dockerfile暴露鏡像的端口128
12.4在Dockerfile中設置環境變量129
12.5在Dockerfile中設置標籤130
12.6使用其他docker build命令選項131
12.7構建容器的技巧132
12.7.1清理鏡像132
12.7.2保持構建目錄較小132
12.7.3保持容器簡單133
12.7.4管理進行緩存的方法133
12.8小結133
第三部分在雲環境上運行容器
第13章使用超級特權容器136
13.1在Atomic Host中使用超級特權容器137
13.2了解超級特權容器137
13.2.1開放給宿主機的權限137
13.2.2訪問宿主機的進程表137
13.2.3訪問宿主機的網絡接口138
13.2.4訪問宿主機的進程間通信139
13.2.5訪問宿主機的 文件系統139
13.3準備使用超級特權容器140
13.4使用atomic命令140
13.4.1用atomic安裝SPC鏡像141
13.4.2用atomic獲取SPC鏡像的信息141
13.4.3用atomic運行SPC鏡像142
13.4.4用atomic停止和重啟SPC 143
13.4.5更新SPC鏡像143
13.4.6卸載SPC鏡像144
13.5嘗試一些SPC 144
13.5.1運行RHEL工具SPC 144
13.5.2運行日誌記錄(rsyslog)SPC 145
13.5.3運行系統監控(sadc )SPC 147
13.6小結149
第14章用Cockpit管理雲中的容器150
14.1了解Cockpit 151
14.2著手使用Cockpit 154
14.3將服務器添加到Cockpit 155
14.4從Cockpit管理容器156
14.4.1向Cockpit添加容器鏡像156
14.4. 2從Cockpit運行鏡像157
14.5從Cockpit管理網絡接口159
14.6從Cockpit配置存儲161
14.7在Cockpit中做其他管理工作162
14.8在Cockpit中打開終端162
14.9小結163
第四部分管理多容器
第15章使用Kubernetes進行容器編排166
15.1了解Kubernetes 167
15.2開始使用Kubernetes 168
15.3搭建一體化Kubernet es 169
15.3.1安裝並啟動Kubernetes 170
15.3.2在Kubernetes中啟動一個pod 171
15.3.3使用Kubernetes 173
15.4小結174
第16章創建Kubernetes集群176
16.1了解Kubernetes的高級特性176
16.2搭建Kubernetes集群177
16.2. 1第1步:安裝Linux 177
16.2.2第2步:搭建Kubernetes master 178
16.2.3第3步:搭建Kubernetes node 180
16.2.4第4步:用Flannel進行網絡設置181
16.3啟動Kubernetes集群中的pod 182
16.4刪除複製控制器、服務和pod 186
16.5小結187
第五部分開發容器
第17章開發Docker容器190
17.1為容器開發做好準備190
17.1.1為Red Hat系統選擇容器開發環境190
17.1.2來自Docker的容器開發環境194
17.2採用良好的開發實踐195
17.2.1將文件包含到構建中或排除出去195
17.2.2利用分層196
17.2.3管理構建中的軟件包197
17.3進一步了解容器構建198
17.4小結198
第18章探索Dockerfile文件示例199
18.1細察官方Docker鏡像的Dockerfile 200
18.1.1查看CentOS的D ockerfile 200
18.1.2查看busybox的Dockerfile 202
18.2細察來自開源項目的Dockerfile 203
18.2.1查看WordPress的Dockerfile 203
18.2.2查看MySQL的Dockerfile 205
18.3細察桌面和個人使用的Dockerfile 207
18.3.1查看Chrome的Dockerfile 207
18.3.2查看Firefox的Dockerfile 210
18.4小結213