成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

容器化-Docker介紹

李增田 / 2700人閱讀

摘要:容器作為一類操作系統(tǒng)層面的虛擬化技術(shù),其目標(biāo)是在單一主機(jī)交付多套隔離性環(huán)境,容器共享同一套主機(jī)操作系統(tǒng)內(nèi)核。與其它容器平臺不同,引入了一整套與容器管理相關(guān)的生態(tài)系統(tǒng)。每個容器都是相互隔離的保證安全的平臺。

導(dǎo)讀:本文章對Docker技術(shù)進(jìn)行了介紹,闡述了Docker的技術(shù)發(fā)展歷程、容器與虛擬機(jī)的差異、Docker原理、特點、Docker三組件和Docker帶來的影響,為我們進(jìn)一步理解Docker打下基礎(chǔ)。
一、前言
  2014年春天,我進(jìn)入一家電商公司做反應(yīng)式編程研究和落地工作,因為做的是平臺工作,希望通過平臺去滿足不通的業(yè)務(wù)場景,業(yè)務(wù)部門只需要進(jìn)行簡單的適配和封裝就能進(jìn)行產(chǎn)品創(chuàng)新。此時就需要一種工具去快速搭建基礎(chǔ)環(huán)境,環(huán)境之間不能相互干擾,業(yè)務(wù)部門還能方面使用。就這樣和Docker進(jìn)行了第一次偶遇,基于它我們將基礎(chǔ)環(huán)境、公共組件等封裝到鏡像中,業(yè)務(wù)部門只需要將代碼放入Docker中就可以輕松使用,原來需要1-2周的環(huán)境準(zhǔn)備,現(xiàn)在只需要幾分鐘,太神奇了!
二、什么是docker?
  Docker 是PaaS 提供商 dotCloud, 基于容器技術(shù)的輕量級虛擬化解決方案,誕生于2013年初,基于Google公司推出的Go 語言實現(xiàn),加入了 Linux 基金會,遵從Apache 2.0 協(xié)議,原始碼在GitHub上進(jìn)行維護(hù);2017年Docker進(jìn)行商業(yè)化運作,原來在github上開源項目正式改名為moby,docker變成了一家商業(yè)化公司。說到Docker,我們就不得不說容器技術(shù)了,Docker是一種容器化技術(shù)的落地。容器作為一類操作系統(tǒng)層面的虛擬化技術(shù),其目標(biāo)是在單一Linux主機(jī)交付多套隔離性環(huán)境,容器共享同一套主機(jī)操作系統(tǒng)內(nèi)核。
三、Docker技術(shù)發(fā)展歷程
2011年 — Warden:由CloudFoundry公司于2011年所建立,其利用LXC 作為初始階段,隨后又將其替換為自家實現(xiàn)方案。與LXC不同,Warden并不會與Linux緊密耦合。相反,其能夠運行在任意能夠提供多種隔離環(huán)境方式的操作系統(tǒng)之上
2013年 — LMCTFY:“Let Me Contain That For You(幫你實現(xiàn)容器化)”。它其實屬于谷歌容器技術(shù)堆棧的開源版本,負(fù)責(zé)提供Linux應(yīng)用程序容器,Kubernetes目前所使用的cAdvisor工具最初就來源于lmctfy項目
2013年 — Docker:起步階段使用LXC,而后利用自己的libcontainer庫將其替換下來。與其它容器平臺不同,Docker引入了一整套與容器管理相關(guān)的生態(tài)系統(tǒng)。其中包括一套高效的分層式容器鏡像模型、一套全局及本地容器注冊表、一個精簡化REST API以及一套命令行界面等等。在后期發(fā)展階段,Docker公司還構(gòu)建起一套名為Docker Swarm的容器集群管理解決方案
2014年 — Rocket:解決部分Docker當(dāng)中存在的缺陷,開發(fā)目標(biāo)是在安全性與生產(chǎn)要求滿足能力上超越Docker,其基于App Container規(guī)范并使其成為一項更為開放的標(biāo)準(zhǔn)
2015年—Docker進(jìn)行大家視線,開源社區(qū)得到前所未有的發(fā)展
2016年 — Windows容器發(fā)布,docker新技術(shù)架構(gòu)升級
2017年—Docker:正式進(jìn)行商業(yè)化運作,docker與moby分家
2018年-Docker在企業(yè)中快速落地
四、容器與虛擬機(jī)差異
  容器為應(yīng)用程序提供了隔離的運行空間:每個容器內(nèi)都包含一個獨享的完整用戶環(huán)境空間,并且一個容器內(nèi)的變動不會影響其他容器的運行環(huán)境。容器技術(shù)使用了namespaces來進(jìn)行空間隔離,通過文件系統(tǒng)的掛載點來決定容器可以訪問哪些文件,通過cgroups來確定每個容器可以利用多少資源。此外容器之間共享同一個系統(tǒng)內(nèi)核,這樣當(dāng)同一個庫被多個容器使用時,內(nèi)存的使用效率會得到提升。
  對于系統(tǒng)虛擬化技術(shù)來說,虛擬層為用戶提供了一個完整的虛擬機(jī):包括內(nèi)核在內(nèi)的一個完整的系統(tǒng)鏡像。CPU虛擬化技術(shù)可以為每個用戶提供一個獨享且和其他用戶隔離的系統(tǒng)環(huán)境,虛擬層可以為每個用戶分配虛擬化后的CPU、內(nèi)存和IO設(shè)備資源
  基于docker容器虛擬化與傳統(tǒng)虛擬化對比

五、Docker原理

  Docker是容器引擎,把linux的cgroup、namespace等容器底層技術(shù)進(jìn)行封裝抽象,為用戶提供了創(chuàng)建和管理容器的便捷界面(命令行和API)
六、Docker特點
  一次構(gòu)建,可以運行在任何地方;很好的釋全了跨平臺和強(qiáng)一致性
七、Docker三組件
  鏡像:鏡像可以用來創(chuàng)建Docker容器的。一個鏡像可以包含一個完整的操作系統(tǒng)環(huán)境和用戶需要的其它應(yīng)用程序,docker的鏡像是只可讀的,一個鏡像可以創(chuàng)建多個容器。
  容器:容器是鏡像創(chuàng)建的實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。
  倉庫:倉庫是集中存放鏡像文件的場所。每個倉庫中又包含了多個鏡像,每個鏡像有不同的標(biāo)簽(tag)。
八、Docker帶來的影響

優(yōu)化資源使用:
以前我們一臺32C128G物理機(jī)最多虛擬20臺左右的4C4G虛機(jī),每臺虛擬機(jī)啟動一個程序,一共部署20多個程序,機(jī)器平均利用率不超過20%,導(dǎo)致大量資源浪費;現(xiàn)在通過docker容器方式啟動應(yīng)用,由于容器共享操作系統(tǒng)網(wǎng)絡(luò),內(nèi)存、cpu,我們一臺物理機(jī)機(jī)器平均可以啟動60個左右的容器,相當(dāng)于跑60個左右的應(yīng)用,經(jīng)生產(chǎn)驗證,應(yīng)用的性能并沒有實際損耗。容器停掉后,資源自動釋放;避免資源定期回收
運維效率提升
以前我們對每個應(yīng)用部署流程:申請資源——》創(chuàng)建虛機(jī)——》初始化運行環(huán)境——》部署應(yīng)用程序包——》啟動應(yīng)用,整個流程需要5-7天;如果需要擴(kuò)展實例時,需要同樣的操作流程。容器化帶來的變革:編寫Dockerfile——》構(gòu)建鏡像——》拉去鏡像并運行;Dockerfile中包含運行環(huán)境,只需要編寫一次;容器運行在資源池中(提前預(yù)制好的),整個流程需要幾分鐘完成
環(huán)境一致性 傳統(tǒng)方式中每一步可能會出現(xiàn)問題(人工或程序);容器化后構(gòu)建的鏡像始終如一,任何地方運行都不受影響 交付流程的改變
開發(fā)——》編譯成war/jar——》提交運維部署申請——》運維定期處理——》通知業(yè)務(wù)上線成功——》業(yè)務(wù)驗證——》發(fā)現(xiàn)問題——》通知運維回退;整個過程耗時較長,涉及開發(fā)、運維強(qiáng)耦合,任何一步失誤導(dǎo)致服務(wù)不可用。?容器化變革:開發(fā)——》源代碼/war/jar——》一鍵部署——》業(yè)務(wù)驗證——》發(fā)現(xiàn)問題——》一鍵回滾;整個過程幾分鐘內(nèi)完成,開發(fā)者、項目經(jīng)理、產(chǎn)品經(jīng)理等都可以獨立完成
加速微服務(wù)落地
微服務(wù)化后,隨著業(yè)務(wù)的增加、服務(wù)的拆分,服務(wù)的個數(shù)回暴增,以前可能幾十個服務(wù),現(xiàn)在變成了幾百個服務(wù)甚至更多;服務(wù)的迭代上線、監(jiān)控對傳統(tǒng)的運維挑戰(zhàn)更大,需要投入更多的人力物力去支持;容器化后,每個微服務(wù)就是一個容器,容器擴(kuò)縮可以在秒級內(nèi)實現(xiàn),容器的監(jiān)控有專門的監(jiān)控工具,業(yè)務(wù)運行環(huán)境在容器中已經(jīng)初始化好了,目前的運維團(tuán)隊可以更方便的去管理更多的服務(wù)。
以應(yīng)用為中心
傳統(tǒng)的應(yīng)用部署需要先申請機(jī)器,考慮物理資源;容器化后,所有容器跑在一個資源池中,只需一次行初始化資源池,后面可以方便使用;業(yè)務(wù)開發(fā)者更聚焦在應(yīng)用開發(fā)層面
加速混合云或多云數(shù)據(jù)中心建設(shè)
應(yīng)用程序最終通過Dockerfile生成鏡像,鏡像存儲在鏡像倉庫,由于docker的特性(一次構(gòu)建、隨處運行),在云端或其它數(shù)據(jù)中心只要安裝簡單的環(huán)境就可以拉去鏡像鏡像運行。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27585.html

相關(guān)文章

  • 容器-Docker實戰(zhàn)

    摘要:導(dǎo)讀本文系統(tǒng)性介紹安裝組件命令語法和應(yīng)用,通過上述介紹使我們已經(jīng)對基本操作有一定了解。二安裝本文以及以上版本為例來說明安裝底層對應(yīng)的是鏡像,不可寫的文件系統(tǒng),它的存儲方式比較多。根據(jù)規(guī)范產(chǎn)生和運行容器的工具。 導(dǎo)讀:本文系統(tǒng)性介紹Docker安裝、Docker組件、Docker命令、Dockerfile語法和Docker應(yīng)用,通過上述介紹使我們已經(jīng)對docker基本操作有一定了解。一、...

    tuantuan 評論0 收藏0
  • Spring Boot 應(yīng)用 Docker 《Spring Boot 2.0極簡教程》(陳光劍)

    摘要:應(yīng)用化極簡教程陳光劍基于的企業(yè)級應(yīng)用開發(fā)最佳實踐前面的章節(jié)中,我們都是在環(huán)境中開發(fā)運行測試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項目實踐中,會實現(xiàn)一套應(yīng)用部署發(fā)布的自動化運維平臺工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級應(yīng)用開發(fā)最佳實踐 前面的章節(jié)中,...

    Donne 評論0 收藏0
  • Spring Boot 應(yīng)用 Docker 《Spring Boot 2.0極簡教程》(陳光劍)

    摘要:應(yīng)用化極簡教程陳光劍基于的企業(yè)級應(yīng)用開發(fā)最佳實踐前面的章節(jié)中,我們都是在環(huán)境中開發(fā)運行測試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項目實踐中,會實現(xiàn)一套應(yīng)用部署發(fā)布的自動化運維平臺工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級應(yīng)用開發(fā)最佳實踐 前面的章節(jié)中,...

    rose 評論0 收藏0
  • 應(yīng)用容器env實戰(zhàn)

    摘要:本文是數(shù)人云工程師方志浩在微信群分享的實錄,與大家聊一聊應(yīng)用容器在配置管理中遇到的問題以及解決方法。數(shù)人云分測試演示生產(chǎn)三種環(huán)境進(jìn)行持續(xù)集成發(fā)布,同時數(shù)人云組件通過進(jìn)行應(yīng)用容器的封裝下發(fā)和管理。 本文是數(shù)人云工程師方志浩在DockOne微信群分享的實錄,與大家聊一聊應(yīng)用容器在配置管理中遇到的問題以及解決方法。 隨著Docker技術(shù)的火熱發(fā)展, Docker在代碼構(gòu)建發(fā)布中扮演著越來越重...

    kid143 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<