Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic構建和部署 Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署

克裡斯托弗·尼格斯 (Christopher Negus)

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

商品描述

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