01 為什么你需要學(xué)習(xí)docker01_W_第1頁
01 為什么你需要學(xué)習(xí)docker01_W_第2頁
01 為什么你需要學(xué)習(xí)docker01_W_第3頁
01 為什么你需要學(xué)習(xí)docker01_W_第4頁
01 為什么你需要學(xué)習(xí)docker01_W_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 從Docker到Kubernetes 第1周DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us 法律聲明【聲明】本視頻和幻燈片為煉數(shù)成金網(wǎng)絡(luò)課程的教學(xué)資料,所有資料只能在課程內(nèi)使用,不得在課程以外范圍散播,違者將可能被追究法律和經(jīng)濟(jì)責(zé)任。課程詳情訪問煉數(shù)成金培訓(xùn)網(wǎng)站DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us 為什么你要學(xué)DockerDocker的歷史與現(xiàn)狀分析Docker的技術(shù)原理介紹Docker的基本概念Docker學(xué)習(xí)必備基礎(chǔ)技能DATAGUR

2、U專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的歷史與現(xiàn)狀分析曾經(jīng)我們都在做一個(gè)稱之為PAAS的平臺(tái)DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的歷史與現(xiàn)狀分析PAAS平臺(tái)的范圍和內(nèi)容DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes講師 Leader-us術(shù)實(shí)戰(zhàn) PaaS平臺(tái)的范疇 1. 確定產(chǎn)品定位和需求,確定首次迭代的范圍。 2. 制作界面原型。 6. 開始編正的業(yè)務(wù)代碼,實(shí)現(xiàn)產(chǎn)品功能。 7. 迭發(fā)/測(cè)試,生生不息,周而復(fù)始,直到頭發(fā)掉光為止 3. 技

3、術(shù)選型,然后根據(jù)技術(shù)選型為每個(gè)開發(fā)者搭建開發(fā)環(huán)境和技術(shù)棧, 例如 Java 環(huán)境、Python 環(huán)境、Ruby 環(huán)境、數(shù)據(jù)庫、中間件等等。 4. 構(gòu)建基礎(chǔ)技術(shù)框架和服務(wù),包括日志、存儲(chǔ)、消息、緩存、搜索、數(shù) 據(jù)源、集群擴(kuò)展等等。 5. 模擬用戶容量,構(gòu)建測(cè)試環(huán)境。 Docker的歷史與現(xiàn)狀分析老一代的PAAS平臺(tái)的局限性和困境 主要提供應(yīng)用的部署和托管 針對(duì)應(yīng)用開發(fā)者 僅支持特定的IaaS基礎(chǔ)技術(shù) 支持單種開發(fā)語言和框架 支持特定的服務(wù),比如自定義的數(shù)據(jù)存儲(chǔ)APIs 沒有很好的解決常用中間件的部署問題 難以解決應(yīng)用和資源的隔離問題 DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kuberne

4、tes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的歷史與現(xiàn)狀分析新一代的PAAS平臺(tái)新一代的云應(yīng)用平臺(tái)技術(shù)則實(shí)現(xiàn)全方位的應(yīng)用生命周期管理,關(guān)注開放性、應(yīng)用的可移植性和云間相互操作性, 其代表者包括Cloud Foundry, OpenShift, Docker, Heroku, MoPaaS等PaaS技術(shù)或服務(wù),除了在第一代PaaS 技術(shù)對(duì)用戶在實(shí)現(xiàn)應(yīng)用交付的加速所提供的功能外,具備以下大多數(shù)特征: 多語言和框架:支持多語言和框架以及語言框架的擴(kuò)展機(jī)制多服務(wù):開放的核心服務(wù)以及服務(wù)的擴(kuò)展機(jī)制 多云和多IaaS技術(shù):支持多種IaaS技術(shù)和多云的部署,包括公有云和私有云 Docker也被稱之為第

5、三代Paas平臺(tái) 有人說Docker公司是世界上最貴的賣T恤的公司dotCloud 不僅支持諸如 PHP、MySql 等傳統(tǒng)技術(shù)框架,還包括 Node.js、MongoDBDocker究竟是什么?等新興技術(shù)?;?dotCloud 提供的開發(fā)工具和技術(shù)框架,你可以直接使用 dotCloud 的 SDK 編寫代碼和構(gòu)建業(yè)務(wù)服務(wù),并在聯(lián)網(wǎng)的時(shí)候把這些代碼推送到云端,實(shí)現(xiàn)自動(dòng)部署和測(cè)試。 DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的歷史與現(xiàn)狀分析落腮胡、皮夾克和摩托車,是Docker 的靈魂人物CTO Solomon Hykes的

6、標(biāo)準(zhǔn)記號(hào),外型看Docker的誕生和幕后的公司2010年,幾個(gè)大胡子年輕人在舊金山成立了一家做 PaaS 平臺(tái)的公司,起名為dotCloud,dotCloud主要是基于PaaS平臺(tái)為開發(fā)者或開發(fā)商提供技術(shù)服務(wù)。 Docker于2013.03.27 正式作為public項(xiàng)目發(fā)布DotCloud公司2013年10月改名為Docker Inc,轉(zhuǎn)型專注于Docker引擎和Docker生態(tài)系統(tǒng)。2014.1 被BLACK DUCK 評(píng)選為2013年10大開源新項(xiàng)目“TOP 10 OPEN SOURCE ROOKIE OF THE YEAR”2014.9獲取4000萬美元融資,此時(shí)已經(jīng)累計(jì)融資6600萬

7、美元 2015.4月獲取了9500萬美元融資, 已經(jīng)確立了在第三代PaaS市場(chǎng)的主導(dǎo)地位。 2015.6月DockerCon 2015大會(huì)上,Linux與行業(yè)巨頭聯(lián)手打造開放容器技術(shù)項(xiàng)目Open Container ProjectDATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的歷史與現(xiàn)狀分析Docker生態(tài)圈Docker已經(jīng)收購了一系列創(chuàng)業(yè)公司,包括KiteMatic、Koality和Socketplane。完成新一輪投資后,Docker計(jì)劃加 快產(chǎn)品推進(jìn)計(jì)劃,在本季度推出Docker Hub企業(yè)版,并且在接下來幾個(gè)月在存儲(chǔ)、網(wǎng)

8、絡(luò)和安全三個(gè)產(chǎn)品方向發(fā)力。紅帽在新的RHEL 7版本中增添了支持Docker的功能,IBM公開擁抱Docker和容器,亞馬遜推出了EC2容器服務(wù),就連公認(rèn)的競(jìng)爭(zhēng)對(duì)手VMware也宣布支持Docker。國(guó)內(nèi),不僅騰訊、阿里、百度、Ucloud、青云等云計(jì)算服務(wù)提供商已經(jīng)將Docker用到實(shí)踐,還有數(shù)家Docker初創(chuàng)企業(yè)在獲得了天使投資后正在辛勤的開發(fā),準(zhǔn)備將產(chǎn)品盡快發(fā)布到市場(chǎng)上。 騰訊云計(jì)算公司對(duì)外宣布成為中國(guó)首家支持Docker Machine的云計(jì)算廠商,并將自身定位于Docker基礎(chǔ)設(shè)施的服務(wù)商,邁出構(gòu)建Docker“航運(yùn)”基礎(chǔ)設(shè)施的第一步。同時(shí),在支持Docker Machine前提下

9、,騰訊云也推出了常用系統(tǒng)的標(biāo)準(zhǔn)版Docker鏡像,以方便用戶能夠一鍵便捷創(chuàng)建容器。DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的歷史與現(xiàn)狀分析Docker生態(tài)圈,2014-2015發(fā)展 貢獻(xiàn)者增長(zhǎng)了183%;GitHub上關(guān)于Docker的項(xiàng)目增長(zhǎng)了515%; Docker提供的工作機(jī)會(huì)增長(zhǎng)了1720%;使用Docker構(gòu)建的應(yīng)用程序增長(zhǎng)了934%(Boot2Docker下載量增加了1456%); 容器的下載量增加了18082%(這個(gè)是根據(jù)DockerHub上鏡像下載量來統(tǒng)計(jì)的)。 Docker Hub業(yè)務(wù)的進(jìn)展:用戶數(shù)量增長(zhǎng)

10、至24萬,Repo增長(zhǎng)至DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的技術(shù)原理介紹Docker就是虛擬化的一種輕量級(jí)替代技術(shù)。Docker的容器技術(shù)不依賴任何語言、框架或系統(tǒng),可以將App變成一種標(biāo)準(zhǔn)化的、可移植的、自管理的組件,并脫離服務(wù)器硬件在任何主流系統(tǒng)中開發(fā)、調(diào)試和運(yùn)行簡(jiǎn)單的說就是,在 Linux 系統(tǒng)上迅速創(chuàng)建一個(gè)容器(類似虛擬機(jī))并在容器上部署和運(yùn)行應(yīng)用程序,并通過配置文件可以輕松實(shí)現(xiàn)應(yīng)用程序的自動(dòng)化安裝、部署和升級(jí),非常方便。因?yàn)槭褂昧巳萜鳎钥梢院芊奖愕陌焉a(chǎn)環(huán)境和開發(fā)環(huán)境分開,互不影響,這是 docker

11、最普遍的一個(gè)玩法。 DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的技術(shù)原理介紹Docker相關(guān)的核心技術(shù)DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的技術(shù)原理介紹Docker相關(guān)的核心技術(shù)之cgroupsLinux系統(tǒng)中經(jīng)常有個(gè)需求就是希望能限制某個(gè)或者某些進(jìn)程的分配資源。于是就出現(xiàn)了cgroups的概念, cgroup就是controller group ,在這個(gè)group中,有分配好的特定比例的cpu時(shí)間,IO時(shí)間,可用內(nèi)存大小等。cgroups是將任意進(jìn)

12、程進(jìn)行分組化管理的Linux內(nèi)核功能。最初由google的工程師提出,后來被整合進(jìn)Linux內(nèi)核中。 cgroups中的 重要概念是“子系統(tǒng)”,也就是資源控制器,每種子系統(tǒng)就是一個(gè)資源的分配器,比如cpu子系統(tǒng)是控制cpu時(shí)間分配的。首先掛載子系統(tǒng),然后才有control group的。比如先掛載memory子系統(tǒng),然后在memory子系統(tǒng)中創(chuàng)建一個(gè)cgroup節(jié)點(diǎn),在這個(gè)節(jié)點(diǎn)中,將需要控制的進(jìn)程id寫入,并且將控制的屬性寫入, 這就完成了內(nèi)存的資源限制。 cgroups 被Linux內(nèi)核支持,有得天獨(dú)厚的性能優(yōu)勢(shì),發(fā)展勢(shì)頭迅猛。在很多領(lǐng)域可以取代虛擬化技術(shù)分割資源。cgroup默認(rèn)有諸多資源

13、組,可以限制幾乎所有服務(wù)器上的資源:cpu mem iops,iobandwide,net,device acess等 DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的技術(shù)原理介紹Docker相關(guān)的核心技術(shù)之LXCLXC是Linux containers的簡(jiǎn)稱,是一種基于容器的操作系統(tǒng)層級(jí)的虛擬化技術(shù)。借助于namespace的隔離機(jī)制和cgroup限額功能,LXC提供了一套統(tǒng)一的API和工具來建立和管理container。LXC跟其他操作系統(tǒng)層次的虛擬化技術(shù)相比,最大的優(yōu)勢(shì)在于LXC被整合進(jìn)內(nèi)核,不用單獨(dú)為內(nèi)核打補(bǔ)丁 LXC

14、旨在提供一個(gè)共享kernel的 OS 級(jí)虛擬化方法,在g 執(zhí)o行p時(shí)不用重復(fù)加載Kernel, 且container的kernel與host 共享,因此可以大大加快container的 啟動(dòng)過程,并顯著減少內(nèi)存消耗,容器在提供隔離的同時(shí),還通過共享這些資源節(jié)省開銷,這意味著容器比真正的虛擬化的開銷要小得多。 在實(shí)際測(cè)試中,基于LXC的虛擬化方法的IO和 CPU性能幾乎接近 baremetal 的性能。 雖然容器所使用的這種類型的隔離總的來說非常強(qiáng)大,然而是不是像運(yùn)行在hypervisor上的虛擬機(jī)那么強(qiáng)壯仍具有爭(zhēng)議性。如果內(nèi)核停止,那么所有的容器就會(huì)停止運(yùn)行。 性能方面:LXCKVMXEN內(nèi)存

15、利用率:LXCKVMXEN 隔離程度: XENKVMLXCDATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的技術(shù)原理介紹Docker相關(guān)的核心技術(shù)之AUFS什么是AUFS?AuFS是一個(gè)能透明覆蓋一或多個(gè)現(xiàn)有文件系統(tǒng)的層狀文件系統(tǒng)。 支持將不同目錄掛載到同一個(gè)虛擬文件系統(tǒng)下,可以把不同的目錄聯(lián)合在一起,組成一個(gè)單一的目錄。這種是一種虛擬的文件系統(tǒng),文件系統(tǒng)不用格式化,直接掛載即可。 Docker一直在用AuFS作為容器的文件系統(tǒng)。當(dāng)一個(gè)進(jìn)程需要修改一個(gè)文件時(shí),AuFS創(chuàng)建該文件的一個(gè)副本。AuFS可以把多層合并成文件系統(tǒng)的單層表示

16、。這個(gè)過程稱為寫入復(fù)制( copy on write )。 AuFS允許Docker把某些鏡像作為容器的基礎(chǔ)。例如,你可能有一個(gè)可以作為很多不同容器的基礎(chǔ)的CentOS系統(tǒng)鏡像。多虧AuFS,只要一個(gè)CentOS鏡像的副本就夠了,這樣既節(jié)省了存儲(chǔ)和內(nèi)存,也保證更快速的容器部署。 使用AuFS的另一個(gè)好處是Docker的版本容器鏡像能力。每個(gè)新版本都是一個(gè)與之前版本的簡(jiǎn)單差異改動(dòng),有效地保持鏡像文件最小化。但,這也意味著你總是要有一個(gè)記錄該容器從一個(gè)版本到另一個(gè)版本改動(dòng)的審計(jì)跟蹤。 DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的

17、技術(shù)原理介紹Docker原理之App打包LXC的基礎(chǔ)上, Docker額外提供的Feature包括:標(biāo)準(zhǔn)統(tǒng)一的打包部署運(yùn)行方案 為了最大化重用Image,加快運(yùn)行速度,減少內(nèi)存和磁盤footprint, Docker container運(yùn)行時(shí)所構(gòu)造的運(yùn)行環(huán)境,實(shí)際上是由具有依賴關(guān)系的多個(gè)Layer組成的。例如一個(gè)apache 的運(yùn)行環(huán)境可能是在基礎(chǔ)的rootfs image的基礎(chǔ)上,疊加了包含例如Emacs等各種工具的image,再疊加包含apache及其相關(guān)依賴library的image,這些image由AUFS文件系統(tǒng)加載合并到統(tǒng)一路徑中,以只讀的方式存在,最后再疊加加載一層可寫的空白的L

18、ayer用作記錄對(duì)當(dāng)前運(yùn)行環(huán)境所作的修改。 有了層級(jí)化的Image做基礎(chǔ),理想中,不同的APP就可以既可能的共用底層文件系統(tǒng),相關(guān)依賴工具等,同一個(gè)APP的不同實(shí)例也可以實(shí)現(xiàn)共用絕大多數(shù)數(shù)據(jù),進(jìn)而以copy on write的形式維護(hù)自己的那一份修改過的數(shù)據(jù)等 DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-usDATAGURU專業(yè)數(shù)據(jù)分析社區(qū) Docker的技術(shù)原理介紹Docker全生命周期開發(fā)模式Docker正在迅速改變?cè)朴?jì)算領(lǐng)域的運(yùn)作規(guī)則,并徹底云技術(shù)的發(fā)展前景從持續(xù)集成/持續(xù)交付到微服務(wù)、開源協(xié)作乃至DevOps,Docker一路走來已經(jīng)給

19、應(yīng)用程序開發(fā)生命周期以及云工程技術(shù)實(shí)踐帶來了巨大變革。 從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的基本概念Docker ImageDocker Image是一個(gè)極度精簡(jiǎn)版的Linux程序運(yùn)行環(huán)境,比如vi這種基本的工具沒有,官網(wǎng)的Java鏡像包括的東西更少,除非是鏡像疊加方式的, 如Centos+Java7Docker Image是需要定制化Build的一個(gè)“安裝包”,包括基礎(chǔ)鏡像+應(yīng)用的二進(jìn)制部署包 Docker Image內(nèi)不建議有運(yùn)行期需要修改的配置文件 Dockerfile用來創(chuàng)建一個(gè)自定義的image,包含了用戶指定的軟件依賴等。 當(dāng)前目錄下包

20、含Dockerfile,使用命令build來創(chuàng)建新的imageDocker Image的最佳實(shí)踐之一是盡量重用和使用網(wǎng)上公開的基礎(chǔ)鏡像 DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的基本概念DockerContainerDocker Container是Image的實(shí)例,共享內(nèi)核 Docker Container里可以運(yùn)行不同Os的Image,比如Ubuntu的或者CentosDocker Container不建議內(nèi)部開啟一個(gè)SSHD服務(wù),1.3版本后新增了docker exec命令進(jìn)入容器排查問題。 Docker Conta

21、iner沒有IP地址,通常不會(huì)有服務(wù)端“盒子/沙箱” 露,是一個(gè)封閉的DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的基本概念DockerContainer的生命周期DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的基本概念Docker DaemonDocker Daemon是創(chuàng)建和運(yùn)行Container的Linux守護(hù)進(jìn)程,也是Docker最主要的核心組件 Docker Daemon 可以理解為Docker Container的ContainerDocker Daemon可以綁定本地端口并提供Rest API服務(wù),用來遠(yuǎn)程訪問和控制 DATAGURU專業(yè)數(shù)據(jù)分析社區(qū)從Docker到Kubernetes術(shù)實(shí)戰(zhàn)講師 Leader-us Docker的基本概念Docker Registry/HubDocker之所以這么吸引人,除了它的新穎的技術(shù)外,圍繞官方Registry(Docke

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論