docker技術(shù)介紹 一PPT課件

上傳人:good****022 文檔編號(hào):116734684 上傳時(shí)間:2022-07-06 格式:PPT 頁(yè)數(shù):86 大?。?.74MB
收藏 版權(quán)申訴 舉報(bào) 下載
docker技術(shù)介紹 一PPT課件_第1頁(yè)
第1頁(yè) / 共86頁(yè)
docker技術(shù)介紹 一PPT課件_第2頁(yè)
第2頁(yè) / 共86頁(yè)
docker技術(shù)介紹 一PPT課件_第3頁(yè)
第3頁(yè) / 共86頁(yè)

下載文檔到電腦,查找使用更方便

32 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《docker技術(shù)介紹 一PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《docker技術(shù)介紹 一PPT課件(86頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、.,1,Docker 技術(shù)介紹(一),信息中心運(yùn)行維護(hù)室畢宏剛,.,2,一、Docker案例介紹 二、Docker概念介紹 三、Docker與虛擬機(jī)對(duì)比 四、Docker應(yīng)用場(chǎng)景 五、Docker的實(shí)用性 六、Docker基本原理 七、Docker基本命令介紹 八、Docker調(diào)度工具介紹 九、Docker最佳實(shí)踐,.,3,一、Docker案例介紹,眼見(jiàn)為實(shí)2048游戲軟件的搭建,.,4,.,5,ubuntuubuntu:/dockerfile$ sudo docker run -d -p 8016:80 two-eight F85f1d378c3aa3d50a4ae4643ef149f7d6

2、650aa880cf4f3183733427c19333af,ubuntuubuntu:/dockerfile$ sudo docker run -d -p 8017:80 two-eight,ubuntuubuntu:/dockerfile$ sudo docker run -d -p 8018:80 two-eight,ubuntuubuntu:/dockerfile$ sudo docker run -d -p 8019:80 two-eight,操作命令,.,6,實(shí)驗(yàn)結(jié)果,.,7,二、Docker概念介紹,什么是容器? 什么是Docker?,.,8,隨著整個(gè)云計(jì)算產(chǎn)業(yè)的演進(jìn),繼IaaS

3、和SaaS成為風(fēng)口和出現(xiàn)爆發(fā)式增長(zhǎng)后,接下來(lái)PaaS即將迎來(lái)風(fēng)口。 在2015年,多家云創(chuàng)業(yè)公司將產(chǎn)品定位轉(zhuǎn)向了場(chǎng)景化PaaS,諸如 即時(shí)通訊PaaS云 智能語(yǔ)音PaaS云 物聯(lián)網(wǎng)PaaS云 存儲(chǔ)PaaS云,基于Docker的PaaS平臺(tái),.,9,1960年之前的貨運(yùn)情況,.,10,通過(guò)集裝箱的運(yùn)貨方式(1960年之后),.,11,.,12,基于Docker的軟件開(kāi)發(fā)、運(yùn)維,.,13,Docker基于容器技術(shù)的輕量級(jí)虛擬化解決方案 Docker是容器引擎,把Linux的cgroup、namespace等容器底層技術(shù)進(jìn)行封裝抽象,為用戶提供了創(chuàng)建和管理容器的便捷界面(包括命令行和API) Doc

4、ker 是一個(gè)開(kāi)源項(xiàng)目,誕生于 2013 年初,基于 Google 公司推出的 Go 語(yǔ)言實(shí)現(xiàn) 微軟,紅帽Linux,IBM,Oracle等主流IT廠商已經(jīng)在自己的產(chǎn)品里增加對(duì)Docker的支持。 Google 每周啟動(dòng)超過(guò)20億個(gè)容器進(jìn)行業(yè)務(wù)服務(wù),于上個(gè)世紀(jì)90年代已經(jīng)開(kāi)始大規(guī)模使用容器技術(shù),.,14,Docker主要功能特征,.,15,.,16,docker容器,軟件運(yùn)行的單元(例如tomcat、mysql軟件),.,17,阿里云平臺(tái),百度云平臺(tái),容器跨云平臺(tái)遷移,.,18,容器介紹,Container(容器)技術(shù)其實(shí)早在多年前就出現(xiàn)了。從2005年的Solaris Containers到

5、2008年LXC 0.1版本的推出。再到后來(lái)的Google推出開(kāi)源的容器管理工具lmctfy,也將近經(jīng)歷了10年的發(fā)展。它僅僅只是一個(gè)虛擬化的技術(shù),相比KVM,XEM沒(méi)有太多的優(yōu)勢(shì)。 直到2013年,Docker的出現(xiàn)。才代表著容器技術(shù)一個(gè)新的時(shí)代的來(lái)臨。,.,19,從技術(shù)角度看,傳統(tǒng)容器只解決了容器執(zhí)行(run)問(wèn)題,而Docker定義了一套容器構(gòu)建(build)分發(fā)(ship)執(zhí)行(run),容器 Container,鏡像 images,倉(cāng)庫(kù) Repositories,執(zhí)行,構(gòu)建,分發(fā),.,20,Client,Docker_host1,Registry(倉(cāng)庫(kù)),Docker run,Doc

6、ker push,Docker pull,Docker engine,容器,鏡像,Docker build,Docker_host2,Docker engine,鏡像,容器,.,21,三、Docker與虛擬機(jī)對(duì)比,虛擬機(jī)和Docker有什么區(qū)別?,.,22,.,23,作為一種輕量級(jí)的虛擬化方式,Docker在運(yùn)行應(yīng)用上跟傳統(tǒng)的虛擬機(jī)方式相比具有顯著優(yōu)勢(shì): Docker容器很快,啟動(dòng)和停止可以在秒級(jí)實(shí)現(xiàn),這相比傳統(tǒng)的虛擬機(jī)方式要快得多。 Docker容器對(duì)系統(tǒng)資源需求很少,一臺(tái)主機(jī)上可以同時(shí)運(yùn)行數(shù)千個(gè)Docker容器。 Docker通過(guò)類(lèi)似Git的操作來(lái)方便用戶獲取、分發(fā)和更新應(yīng)用鏡像,指令簡(jiǎn)明

7、,學(xué)習(xí)成本較低。,Docker-輕量級(jí)虛擬化容器技術(shù),.,24,Docker通過(guò)Dockerfile配置文件來(lái)支持靈活的自動(dòng)化創(chuàng)建和部署機(jī)制,提高工作效率。 Docker容器除了運(yùn)行其中的應(yīng)用之外,基本不消耗額外的系統(tǒng)資源,保證應(yīng)用性能的同時(shí),盡量減小系統(tǒng)開(kāi)銷(xiāo)。傳統(tǒng)虛擬機(jī)方式運(yùn)行N個(gè)不同的應(yīng)用就要啟動(dòng)N個(gè)虛擬機(jī)(每個(gè)虛擬機(jī)需要單獨(dú)分配獨(dú)占的內(nèi)存、磁盤(pán)等資源),而Docker只需要啟動(dòng)N個(gè)隔離的容器,并將應(yīng)用放到容器內(nèi)即可。,Docker-輕量級(jí)虛擬化容器技術(shù),.,25,特點(diǎn)對(duì)比,.,26,以下的數(shù)據(jù)均是在IBM x3650 M4服務(wù)器測(cè)得,其主要的硬件參數(shù)是: (1)2顆英特爾xeon E5-

8、2655 處理器,主頻2.4-3.0 GHz。每顆處理器有8個(gè)核,因此總共有16個(gè)核。 (2)256 GB RAM. 在測(cè)試中是通過(guò)運(yùn)算Linpack程序來(lái)獲得計(jì)算能力數(shù)據(jù)的。結(jié)果如下圖所示:,性能對(duì)比,.,27,1.資源隔離方面不如虛擬機(jī),docker是利用cgroup實(shí)現(xiàn)資源限制的,只能限制資源消耗的最大值,而不能隔絕其他程序占用自己的資源。 2.安全性問(wèn)題。docker目前并不能分辨具體執(zhí)行指令的用戶,只要一個(gè)用戶擁有執(zhí)行docker的權(quán)限,那么他就可以對(duì)docker的容器進(jìn)行所有操作,不管該容器是否是由該用戶創(chuàng)建。比如A和B都擁有執(zhí)行docker的權(quán)限,由于docker的server端

9、并不會(huì)具體判斷docker client是由哪個(gè)用戶發(fā)起的,A可以刪除B創(chuàng)建的容器,存在一定的安全風(fēng)險(xiǎn)。 3.docker目前還在版本的快速更新中,細(xì)節(jié)功能調(diào)整比較大。一些核心模塊依賴于高版本內(nèi)核,存在版本兼容問(wèn)題,Docker相對(duì)虛擬機(jī)不足之處,.,28,有些激進(jìn)的言論聲稱(chēng)Docker將是現(xiàn)有虛擬機(jī)技術(shù)的終結(jié)者,個(gè)人覺(jué)得此言論有些浮夸了。Docker是面向應(yīng)用的,其終極目標(biāo)是構(gòu)建PAAS平臺(tái),而現(xiàn)有虛擬機(jī)主要目的是提供一個(gè)靈活的計(jì)算資源池,是面向架構(gòu)的,其終極目標(biāo)是構(gòu)建一個(gè)IAAS,或者是SDDC(Software Defined Data Center軟件定義的數(shù)據(jù)中心)。 并且,兩者相輔

10、相成。Docker的老東家dotCloud的PAAS服務(wù)便基于Amazon的AWS服務(wù),因此,虛擬機(jī)是Docker的土壤,而Docker則向用戶展現(xiàn)了業(yè)務(wù)。,結(jié)論,.,29,四、Docker應(yīng)用場(chǎng)景,Docker怎么用?,.,30,對(duì)應(yīng)用進(jìn)行自動(dòng)打包和部署(Automating the packaging and deployment of applications),Docker對(duì)于應(yīng)用依賴封裝完整,同一鏡像可重復(fù)的在測(cè)試、集成、生產(chǎn)等環(huán)境部署,做到“一次構(gòu)建,處處運(yùn)行”,適用于持續(xù)集成、持續(xù)部署流程。,.,31, 創(chuàng)建輕量、私有的PAAS環(huán)境(Creation of lightweight

11、, private PAAS environments),.,32,自動(dòng)化測(cè)試和持續(xù)整合與部署(Automated testing and continuous integration/deployment ),搭建開(kāi)發(fā)環(huán)境,安裝web容器,安裝數(shù)據(jù)庫(kù),分配網(wǎng)絡(luò),開(kāi)發(fā)測(cè)試,編碼,測(cè)試,安裝web容器,安裝數(shù)據(jù)庫(kù),分配網(wǎng)絡(luò),上線生產(chǎn),搭建開(kāi)發(fā)環(huán)境,安裝web容器,安裝數(shù)據(jù)庫(kù),分配網(wǎng)絡(luò),SAP測(cè)試環(huán)境,安裝SAP系統(tǒng),測(cè)試,安裝SAP系統(tǒng),生產(chǎn),SAP生產(chǎn)環(huán)境,SAP開(kāi)發(fā)環(huán)境,安裝SAP系統(tǒng),開(kāi)發(fā),共享NFS文件系統(tǒng),版本管理,傳輸,傳輸,傳統(tǒng)型軟件開(kāi)發(fā)、測(cè)試、上線過(guò)程,.,33,1、資源利用效率

12、低 2、單物理機(jī)多應(yīng)用無(wú)法有效隔離(進(jìn)程空間,cpu資源,磁盤(pán)) 3、運(yùn)維部署不便 4、測(cè)試、版本管理復(fù)雜 5、遷移成本高 6、傳統(tǒng)虛擬機(jī),空間占用大,啟動(dòng)慢,管理復(fù)雜,傳統(tǒng)型軟件開(kāi)發(fā)、測(cè)試、上線過(guò)程不足之處,.,34,Docker倉(cāng)庫(kù)群,開(kāi)發(fā)(本地),獲取鏡像,開(kāi)發(fā)測(cè)試,提交倉(cāng)庫(kù),測(cè)試機(jī)(公用),獲取鏡像,驗(yàn)證測(cè)試,生產(chǎn)機(jī)集群,獲取鏡像,部署,備份,以Docker為單位的開(kāi)發(fā)部署流程設(shè)計(jì),.,35,以docker為單位的開(kāi)發(fā)測(cè)試部署流程,簡(jiǎn)化了環(huán)境搭建的步驟,提高了資源利用效率和開(kāi)發(fā)測(cè)試部署的速度,降低了遷移的成本 更快速的交付和部署。使用Docker,開(kāi)發(fā)人員可以使用鏡像來(lái)快速構(gòu)建一套標(biāo)準(zhǔn)

13、的開(kāi)發(fā)環(huán)境;開(kāi)發(fā)完成之后,測(cè)試和運(yùn)維人員可以直接使用相同環(huán)境來(lái)部署代碼。 Docker可以快速創(chuàng)建和刪除容器,實(shí)現(xiàn)快速迭代,大量節(jié)約開(kāi)發(fā)、測(cè)試、部署的時(shí)間。并且,各個(gè)步驟都有明確的配置和操作,整個(gè)過(guò)程全程可見(jiàn),使團(tuán)隊(duì)更容易理解應(yīng)用的創(chuàng)建和工作過(guò)程。,.,36, 部署和擴(kuò)展Web應(yīng)用、數(shù)據(jù)庫(kù)和后端服務(wù)(Deploying and scaling web apps, databases and backend services) 案例:微博紅包 羊年春晚Docker集群成功的為1.02億用戶刷微博、搶紅包提供了可靠的服務(wù)。 微博平臺(tái)Docker集群的規(guī)模情況: Docker集群規(guī)模達(dá)到1000+節(jié)

14、點(diǎn) QPS(每秒查詢率)峰值達(dá)到800K/s 4個(gè)9的服務(wù)SLA達(dá)到150ms 共覆蓋23個(gè)核心服務(wù) 春晚共調(diào)度近300節(jié)點(diǎn)完成動(dòng)態(tài)擴(kuò)容,.,37,由此可見(jiàn),Docker的目的是讓用戶用簡(jiǎn)單的“集裝箱”方式,快速的部署大量的、標(biāo)準(zhǔn)化的應(yīng)用運(yùn)行環(huán)境,所以,只要是這類(lèi)的需求,Docker都比較適合。,結(jié)論,.,38,五、Docker的實(shí)用性,成熟度、適用性 Docker能在企業(yè)里面用么?,1、穩(wěn)定性 2、可管理性 3、業(yè)務(wù)高可用和可恢復(fù)能力,.,39,從穩(wěn)定性上看,Docker在2015年6月10日發(fā)布了1.0版本,把該版本稱(chēng)為一個(gè)“里程碑”,并聲稱(chēng)“1.0的發(fā)布表明在質(zhì)量、功能完整、后臺(tái)兼容和

15、API 穩(wěn)定性方面已經(jīng)提升了一個(gè)級(jí)別,達(dá)到企業(yè) IT 標(biāo)準(zhǔn)”。 但在此之前,dotCloud一直警告用戶“不要在生產(chǎn)環(huán)境中運(yùn)行 Docker ”,在RHEL 7中,Docker的版本為0.11.1,這是1.0發(fā)布前的RC版本,雖然紅帽會(huì)將之后的Docker更新和補(bǔ)丁修復(fù)更新到0.11版本中,目前Docker的版本是1.9版本。 但是,企業(yè)客戶在使用這樣一個(gè)較新的軟件版本時(shí),仍需承擔(dān)不小的穩(wěn)定性風(fēng)險(xiǎn)的。而在很多企業(yè)客戶的軟件版本選擇規(guī)范上,都有“需采用已經(jīng)發(fā)布超過(guò)半年的穩(wěn)定版本”的要求。,穩(wěn)定性,.,40,可管理性方面,企業(yè)的IT運(yùn)維人員需要所使用的軟件具有很好的可視化管理能力,并且具有可行的監(jiān)

16、控手段。 Docker目前的集中化管理主要有DockerUI 、Dockland、Shipyard 等Docker的主要作用是應(yīng)用的發(fā)布和運(yùn)行,但是,看起來(lái)Shipyard在Application的管理上還很粗糙,并且,整個(gè)管理思路并不是以應(yīng)用為中心的,這可能會(huì)給企業(yè)在集中管理Docker的時(shí)候,帶來(lái)了一定的“麻煩”。 而監(jiān)控的主要目的是快速了解系統(tǒng)、運(yùn)行的建康狀況,對(duì)風(fēng)險(xiǎn)狀態(tài)進(jìn)行告警,這方面,Docker較為缺乏,還需要企業(yè)針對(duì)相關(guān)環(huán)境進(jìn)行定制化的監(jiān)控實(shí)現(xiàn)。,可管理性,.,41,在企業(yè)中任何一個(gè)業(yè)務(wù)都是需要高度可用的,因此,企業(yè)業(yè)務(wù)平臺(tái)都要考慮三個(gè)事情:本地高可用、數(shù)據(jù)備份、遠(yuǎn)程災(zāi)難恢復(fù)。

17、當(dāng)然,在使用Docker的時(shí)候,也許需要從另一個(gè)角度考慮問(wèn)題,在Docker的應(yīng)用場(chǎng)景中,提倡“無(wú)狀態(tài)”應(yīng)用,也就是說(shuō),業(yè)務(wù)數(shù)據(jù)僅在數(shù)據(jù)層進(jìn)行存儲(chǔ),而業(yè)務(wù)層不關(guān)注任何數(shù)據(jù)。業(yè)務(wù)層的高可用就可以通過(guò)快速的重新部署來(lái)實(shí)現(xiàn),數(shù)據(jù)層仍然采用傳統(tǒng)模式,或者借助于傳統(tǒng)的方式實(shí)現(xiàn)高可用和可恢復(fù)性。但這需要時(shí)間進(jìn)行方案摸索和驗(yàn)證,其可行性和可靠性需要時(shí)間來(lái)去證明。,業(yè)務(wù)高可用和可恢復(fù)性,.,42,綜上所述,Docker到大規(guī)模的企業(yè)環(huán)境應(yīng)用還有不少的路要走,但是,它所帶來(lái)的便利性仍然不可小視,這將是革命性的改變,“不足”換種說(shuō)法就是“機(jī)會(huì)”,這需要大量了解企業(yè)業(yè)務(wù)的合作伙伴圍繞Docker推出相應(yīng)的解決方案,

18、而Docker的開(kāi)放性給這種努力帶來(lái)了極大的便利性。 而對(duì)于企業(yè)來(lái)說(shuō),Docker對(duì)開(kāi)發(fā)、測(cè)試團(tuán)隊(duì)帶來(lái)的便利性非常巨大,而開(kāi)發(fā)、測(cè)試環(huán)境對(duì)之上所討論到的缺點(diǎn)并不關(guān)注,所以,在開(kāi)發(fā)、測(cè)試團(tuán)隊(duì)大膽的推廣、使用Docker無(wú)疑能夠獲得極大的收益。,.,43,六、Docker基本原理,基本概念及基本原理,.,44,基本概念(三大核心),容器 Container,鏡像 images,倉(cāng)庫(kù) Repositories,執(zhí)行,構(gòu)建,分發(fā),.,45,Docker 的鏡像類(lèi)似虛擬機(jī)的模板,但是更輕量 例如:一個(gè)鏡像可以包含一個(gè)完整的 Linux 操作系統(tǒng)環(huán)境,里面僅安裝了 Tomcat或用戶需要的其它應(yīng)用程序 鏡

19、像可以用來(lái)創(chuàng)建容器,鏡像,.,46,等同于從模板中創(chuàng)建虛擬機(jī) 容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例。它可以被啟動(dòng)、開(kāi)始、停止、刪除。每個(gè)容器都是相互隔離的、保證安全的平臺(tái)。 可以把容器看做是一個(gè)簡(jiǎn)易版的 Linux 環(huán)境(包括root用戶權(quán)限、進(jìn)程空間、用戶空間和網(wǎng)絡(luò)空間等)和運(yùn)行在其中的應(yīng)用程序。,容器,.,47,鏡像 #0 Linux +tomcat,容器 #1 Linux + tomcat,容器 #2 Linux + tomcat,容器 #3 Linux + tomcat,從同一個(gè)鏡像啟動(dòng)多個(gè)容器,.,48,容器端口映射,主機(jī),鏡像名稱(chēng):image:01 鏡像ID:e7fig83jgf8 Linu

20、x+tomcat,鏡像名稱(chēng):image:02 鏡像ID:v8fkfg8gkd Linux+oracle,容器名稱(chēng):myapp1 容器ID:44adg8d9mdf,port:8080,port:80,容器名稱(chēng):myapp_db 容器ID:35gif8jr9fgnhkf,port:1521,port:1521,容器名稱(chēng):myapp2 容器ID:9gjd8jd9gkdh9g,port:8081,port:80,.,49,倉(cāng)庫(kù)是集中存放鏡像文件的場(chǎng)所 倉(cāng)庫(kù)注冊(cè)服務(wù)器上往往存放著多個(gè)倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)中又包含了多個(gè)鏡像,每個(gè)鏡像有不同的標(biāo)簽 倉(cāng)庫(kù)分為公開(kāi)倉(cāng)庫(kù)(Public)和私有倉(cāng)庫(kù)(Private)兩種形

21、式 push 鏡像到倉(cāng)庫(kù),從倉(cāng)庫(kù)pull下鏡像,push,pull,主機(jī),主機(jī),倉(cāng)庫(kù)及倉(cāng)庫(kù)注冊(cè)服務(wù)器,.,50,LinuxKernel,.,51,文件系統(tǒng)是如何工作的,Docker鏡像被存儲(chǔ)在一系列的只讀層。當(dāng)我們開(kāi)啟一個(gè)容器,Docker讀取只讀鏡像并添加一個(gè)讀寫(xiě)層在頂部。如果正在運(yùn)行的容器修改了現(xiàn)有的文件,該文件將被拷貝出底層的只讀層到最頂層的讀寫(xiě)層。在讀寫(xiě)層中的舊版本文件隱藏于該文件之下,但并沒(méi)有被不破壞 - 它仍然存在于鏡像以下。當(dāng)Docker的容器被刪除,然后重新啟動(dòng)鏡像時(shí),將開(kāi)啟一個(gè)沒(méi)有任何更改的新的容器 - 這些更改會(huì)丟失。此只讀層及在頂部的讀寫(xiě)層的組合被Docker稱(chēng)為 Uni

22、on File System(聯(lián)合文件系統(tǒng))。,.,52,.,53,七、Docker基本命令介紹,Docker怎么操作?,.,54,基本命令,下載image $docker pull image_name 列出鏡像列表; $docker images 在容器中運(yùn)行echo命令,輸出hello word $ docker run image_name echo hello word“,.,55,列出當(dāng)前所有正在運(yùn)行的container $docker ps 利用dockerfile建立新的鏡像 $docker build -t image_name Dockerfile_path 發(fā)布docke

23、r鏡像 $docker push new_image_name,基本命令,.,56,列出當(dāng)前所有正在運(yùn)行的container $docker ps 利用dockerfile建立新的鏡像 $docker build -t image_name Dockerfile_path 發(fā)布docker鏡像 $docker push new_image_name,基本命令,.,57,列出當(dāng)前所有正在運(yùn)行的container $docker ps 利用dockerfile建立新的鏡像 $docker build -t image_name Dockerfile_path 發(fā)布docker鏡像 $docker

24、push new_image_name,基本命令,.,58,操作案例,1、新建dockerfile文件 2、使用dockerfile創(chuàng)建新鏡像 3、新建新容器 ubuntuubuntu:$ mkdir dockerfile ubuntuubuntu:$ cd dockerfile ubuntuubuntu:/dockerfile$ vi dockerfile,.,59,容器介紹,ubuntuubuntu:$ mkdir dockerfile ubuntuubuntu:$ cd dockerfile ubuntuubuntu:/dockerfile$ vi dockerfile,.,60,FRO

25、M ubuntu:12.04 RUN apt-get update RUN apt-get install -y nginx zip curl RUN echo daemon off; /etc/nginx/nginx.conf RUN curl -o /usr/share/nginx/www/master.zip -L RUN cd /usr/share/nginx/www/ /etc/nginx/nginx.conf - Using cache - dc4b8f42854c,執(zhí)行腳本,.,62,Step 4 : RUN curl -o /usr/share/nginx/www/master

26、.zip -L - Using cache - a73692e9d747 Step 5 : RUN cd /usr/share/nginx/www/ & unzip master.zip & mv 2048-master/* . & rm -rf 2048-master master.zip - Using cache - c454b6cfda95 Step 6 : EXPOSE 80 - Using cache - 90a36ee1a682 Step 7 : CMD /usr/sbin/nginx -c /etc/nginx/nginx.conf - Using cache - ab656c

27、34b790 Successfully built ab656c34b790,.,63,ubuntuubuntu:/dockerfile$ sudo docker run -d -p 8016:80 two-eight F85f1d378c3aa3d50a4ae4643ef149f7d6650aa880cf4f3183733427c19333af,新建容器,.,64,ubuntuubuntu:/dockerfile$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f85f1d378c3a two-eig

28、ht:latest /usr/sbin/nginx -c 12 seconds ago Up 11 seconds 0.0.0.0:8016-80/tcp happy_brattain 083e0b625f1d two-eight:v5 nginx -g daemon of 5 days ago Up 5 days 0.0.0.0:8015-80/tcp hungry_kirch 05f67d439202 two-eight:v4 nginx -g daemon of 5 days ago Up 5 days 0.0.0.0:8014-80/tcp berserk_kirch e22e3622

29、bc03 mytwo:latest /usr/sbin/nginx -c 5 days ago Up 5 days 0.0.0.0:8013-80/tcp adoring_lumiere 372f7bf88fce tomcat7:latest /usr/share/tomcat7/ 7 weeks ago Up 7 weeks 9000/tcp, 0.0.0.0:8120-8080/tcp ecstatic_tesla 46efd96497df mytwo:latest /usr/sbin/nginx -c 11 weeks ago Up 11 weeks 0.0.0.0:8012-80/tc

30、p admiring_hodgkin 4d750597e720 mytwo:latest /usr/sbin/nginx -c 11 weeks ago Up 11 weeks 0.0.0.0:8011-80/tcp goofy_poincare,查看容器,.,65,八、Docker調(diào)度工具介紹,Docker怎么才能用好?,.,66,很多人將Docker等同于Container,其實(shí)這是不對(duì)的,就像傳統(tǒng)的集裝箱運(yùn)輸體系一樣,集裝箱只是其中一個(gè)最核心的部件。用它來(lái)代表整個(gè)以集裝箱為核心的運(yùn)輸體系。那么Docker其實(shí)就是以容器為核心的IT交付與運(yùn)行體系。 它包括了Docker Engine(容器

31、的運(yùn)行管理) Docker Registry(容器的分發(fā)管理) 以及相關(guān)的一系列的API接口。 包括Docker Machine,Swarm,Compose。 所以可以看做是一套以容器為核心的創(chuàng)建,分發(fā),和運(yùn)行的標(biāo)準(zhǔn)化體系。,.,67,容器調(diào)度工具的主要任務(wù)就是負(fù)責(zé)在最合適的主機(jī)上啟動(dòng)容器,并且將它們關(guān)聯(lián)起來(lái)。它必須能夠通過(guò)自動(dòng)的故障轉(zhuǎn)移(fail-overs)來(lái)處理錯(cuò)誤,并且當(dāng)一個(gè)實(shí)例不足以處理/計(jì)算數(shù)據(jù)時(shí),它能夠擴(kuò)展容器來(lái)解決問(wèn)題。 四個(gè)主流容器調(diào)度框架:Docker Swarm、Apache Mesos (running the Marathon framework)and Google

32、 Kubernetes。 CoreOS Fleet,容器調(diào)度簡(jiǎn)介,.,68,Docker Swarm是一個(gè)由Docker開(kāi)發(fā)的調(diào)度框架。由Docker自身開(kāi)發(fā)的好處之一就是標(biāo)準(zhǔn)Docker API的使用。 。,.,69,Kubernetes是一個(gè)Docker容器的編排系統(tǒng),它使用label和pod的概念來(lái)將容器換分為邏輯單元。Pods是同地協(xié)作(co-located)容器的集合,這些容器被共同部署和調(diào)度,形成了一個(gè)服務(wù),這是Kubernetes和其他兩個(gè)框架的主要區(qū)別。相比于基于相似度的容器調(diào)度方式(就像Swarm和Mesos),這個(gè)方法簡(jiǎn)化了對(duì)集群的管理。,.,70,.,71,Mesos的目

33、的就是建立一個(gè)高效可擴(kuò)展的系統(tǒng),并且這個(gè)系統(tǒng)能夠支持很多各種各樣的框架,不管是現(xiàn)在的還是未來(lái)的框架,它都能支持。,.,72,Fleet是一個(gè)來(lái)自CoreOS的集群管理工具,自詡為低級(jí)別的集群引擎,也就意味著,它可支持從基礎(chǔ)層到高層解決方案如Kubernetes。,.,73,1. Swarm的優(yōu)點(diǎn)和缺點(diǎn)都是使用標(biāo)準(zhǔn)的Docker接口,使用簡(jiǎn)單,容易集成到現(xiàn)有系統(tǒng),但是更困難支持更復(fù)雜的調(diào)度,比如以定制接口方式定義的調(diào)度。 2.Fleet是低層次且相當(dāng)簡(jiǎn)單的管理指揮層,能作為運(yùn)行高級(jí)別管理工具如Kubernetes 的基礎(chǔ)。 3.Kubernetes 是自成體系的管理工具,有自己的服務(wù)發(fā)現(xiàn)和復(fù)制,

34、需要對(duì)現(xiàn)有應(yīng)用的重新設(shè)計(jì),但是能支持失敗冗余和擴(kuò)展系統(tǒng)。Kubernetes是由谷歌的Borg容器管理工具簡(jiǎn)化的開(kāi)源版本 。,總結(jié)比較,.,74,4.Mesos是低級(jí)別 battle-hardened調(diào)度器,支持幾種容器管理框架如Marathon, Kubernetes, and Swarm,現(xiàn)在Kubernetes 和 Mesos穩(wěn)定性超過(guò)Swarm,在擴(kuò)展性方面,Mesos已經(jīng)被證明支持超大規(guī)模的系統(tǒng),比如數(shù)百數(shù)千臺(tái)主機(jī),但是,如果你需要小的集群,比如少于一打數(shù)量的節(jié)點(diǎn)服務(wù)器數(shù)量,Mesos也許過(guò)于復(fù)雜了。 Mesos則由開(kāi)源社區(qū)在谷歌公開(kāi)出的技術(shù)原理上開(kāi)發(fā)出來(lái),但可以適應(yīng)更大規(guī)模的分布式

35、集群系統(tǒng)。,總結(jié)比較,.,75,九、Docker最佳實(shí)踐,Devops介紹,.,76,DevOps(英文Development和Operations的組合) 是一組過(guò)程、方法與系統(tǒng)的統(tǒng)稱(chēng),用于促進(jìn)開(kāi)發(fā)(應(yīng)用程序/軟件工程)、技術(shù)運(yùn)營(yíng)和質(zhì)量保障(QA)部門(mén)之間的溝通、協(xié)作與整合。它的出現(xiàn)是由于軟件行業(yè)日益清晰地認(rèn)識(shí)到:為了按時(shí)交付軟件產(chǎn)品和服務(wù),開(kāi)發(fā)和運(yùn)營(yíng)工作必須緊密合作。,.,77,需要頻繁交付的企業(yè)可能更需要對(duì)DevOps有一個(gè)大致的了解。如果一個(gè)組織要生產(chǎn)面向多種用戶、具備多樣功能的應(yīng)用程序,其部署周期必然會(huì)很短。這種能力也被稱(chēng)為持續(xù)部署,并且經(jīng)常與精益創(chuàng)業(yè)方法聯(lián)系起來(lái)。從2009年起,相

36、關(guān)的工作組、專(zhuān)業(yè)組織和博客快速涌現(xiàn)。,.,78,DevOps的引入能對(duì)產(chǎn)品交付、測(cè)試、功能開(kāi)發(fā)和維護(hù)(包括曾經(jīng)罕見(jiàn)但如今已屢見(jiàn)不鮮的“熱補(bǔ)丁”)起到意義深遠(yuǎn)的影響。在缺乏DevOps能力的組織中,開(kāi)發(fā)與運(yùn)營(yíng)之間存在著信息“鴻溝”例如運(yùn)營(yíng)人員要求更好的可靠性和安全性,開(kāi)發(fā)人員則希望基礎(chǔ)設(shè)施響應(yīng)更快,而業(yè)務(wù)用戶的需求則是更快地將更多的特性發(fā)布給最終用戶使用。這種信息鴻溝就是最常出問(wèn)題的地方。,.,79,介紹JAVA項(xiàng)目如何通過(guò)Docker實(shí)現(xiàn)持續(xù)部署(只需簡(jiǎn)單四步),全程無(wú)需運(yùn)維人員參與即: 開(kāi)發(fā)人員通過(guò)git push上傳代碼 經(jīng)Git和Jenkins配合 自動(dòng)完成程序部署 發(fā)布,案例介紹,.,

37、80,其他變通的方案,把代碼放在宿主機(jī)上,讓容器通過(guò)卷組映射來(lái)讀取。這種方法不建議的原因是,將代碼拆分出容器,這違背了Docker的集裝箱原則。從貨運(yùn)工人角度考慮,整體才是最經(jīng)濟(jì)的。這樣,也才能實(shí)現(xiàn)真正意義的容器級(jí)遷移。 或者說(shuō),容器時(shí)代,拋棄過(guò)去文件分發(fā)的思想。 容器即進(jìn)程。我們采用上述方案做Docker持續(xù)部署的原因和意義,也在于此。容器的生命周期,應(yīng)該遠(yuǎn)遠(yuǎn)短于虛擬機(jī),容器出現(xiàn)問(wèn)題,應(yīng)該是立即殺掉,而不是試圖恢復(fù)。,.,81,GIT作為開(kāi)源代碼庫(kù)以及版本控制系統(tǒng),Github擁有140多萬(wàn)開(kāi)發(fā)者用戶。隨著越來(lái)越多的應(yīng)用程序轉(zhuǎn)移到了云上,Github已經(jīng)成為了管理軟件開(kāi)發(fā)以及發(fā)現(xiàn)已有代碼的首

38、選方法。 Jenkins是基于Java開(kāi)發(fā)的一種繼續(xù)集成(Continuous integration)工具,簡(jiǎn)稱(chēng)CI。 它倡導(dǎo)團(tuán)隊(duì)開(kāi)發(fā)成員必須經(jīng)常集成他們的工作,甚至每天都可能發(fā)生多次集成。而每次的集成都是通過(guò)自動(dòng)化的構(gòu)建來(lái)驗(yàn)證,包括自動(dòng)編譯、發(fā)布和測(cè)試,從而盡快地發(fā)現(xiàn)集成錯(cuò)誤,讓團(tuán)隊(duì)能夠更快的開(kāi)發(fā)內(nèi)聚的軟件。,知識(shí)點(diǎn)介紹,.,82,圖示JAVA項(xiàng)目如何通過(guò)Docker實(shí)現(xiàn)持續(xù)部署即: 開(kāi)發(fā)人員通過(guò)git push上傳代碼,經(jīng)Git和Jenkins配合,自動(dòng)完成程序部署、發(fā)布,全程無(wú)需運(yùn)維人員參與。,.,83,一個(gè)IT系統(tǒng)應(yīng)該包含如下幾個(gè)層次: 應(yīng)用程序 運(yùn)行時(shí)平臺(tái)(bin/framewor

39、k/lib) 操作系統(tǒng) 硬件(基礎(chǔ)設(shè)施) 開(kāi)發(fā)人員的主要工作是應(yīng)用程序的編碼、構(gòu)建、測(cè)試和發(fā)布,涉及應(yīng)用程序和運(yùn)行時(shí)平臺(tái)這兩層。而運(yùn)維人員的工作則涉及從硬件、操作系統(tǒng)到運(yùn)行時(shí)平臺(tái)的安裝、配置、運(yùn)行監(jiān)控、升級(jí)和優(yōu)化等工作。docker提供了一種運(yùn)行時(shí)環(huán)境,隔離了上層應(yīng)用于下層操作系統(tǒng)和硬件的關(guān)聯(lián),使得術(shù)業(yè)有專(zhuān)攻。,開(kāi)發(fā)和運(yùn)維的有效隔離,.,84,簡(jiǎn)單的東西,永遠(yuǎn)是最有生命力的,.,85,Docker是基于Linux 64bit的,無(wú)法在32bit的linux/Windows/unix環(huán)境下使用 LXC是基于cgroup等linux kernel功能的,因此container的guest系統(tǒng)只能是linux base的 隔離性相比KVM之類(lèi)的虛擬化方案還是有些欠缺,所有container公用一部分的運(yùn)行庫(kù) 網(wǎng)絡(luò)管理相對(duì)簡(jiǎn)單,主要是基于namespace隔離 cgroup的cpu和cpuset提供的cpu功能相比KVM的等虛擬化方案相比難以度量(所以dotcloud主要是按內(nèi)存收費(fèi)) docker對(duì)disk的管理比較有限 container隨著用戶進(jìn)程的停止而銷(xiāo)毀,container中的log等用戶數(shù)據(jù)不便收集,Docker目前在著以下幾個(gè)缺點(diǎn),.,86,所有的偉大 源于一個(gè)勇敢的開(kāi)始,2016年4月11日,

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!