国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Docker】Docker最近這么火,它到底是什么

這篇具有很好參考價(jià)值的文章主要介紹了【Docker】Docker最近這么火,它到底是什么。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【Docker】Docker最近這么火,它到底是什么

前言

Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。


??作者簡(jiǎn)介:熱愛(ài)跑步的恒川,致力于C/C++、Java、Python等多編程語(yǔ)言,熱愛(ài)跑步,喜愛(ài)音樂(lè)的一位博主。
??本文收錄于恒川的日常匯報(bào)系列,大家有興趣的可以看一看
??相關(guān)專(zhuān)欄C語(yǔ)言初階、C語(yǔ)言進(jìn)階系列等,大家有興趣的可以看一看
??Python零基礎(chǔ)入門(mén)系列,Java入門(mén)篇系列正在發(fā)展中,喜歡Python、Java的朋友們可以關(guān)注一下哦!

簡(jiǎn)介

Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的LinuxWindows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。

一個(gè)完整的Docker有以下幾個(gè)部分組成:

  1. DockerClient客戶端
  2. Docker Daemon守護(hù)進(jìn)程
  3. Docker Image鏡像
  4. DockerContainer容器

Docker起源

Docker 是 PaaS 提供商 dotCloud 開(kāi)源的一個(gè)基于 LXC 的高級(jí)容器引擎,源代碼托管在 Github 上, 基于go語(yǔ)言并遵從Apache2.0協(xié)議開(kāi)源。
Docker自2013年以來(lái)非常火熱,無(wú)論是從 github 上的代碼活躍度,還是Redhat在RHEL6.5中集成對(duì)Docker的支持, 就連 Google 的 Compute Engine 也支持 docker 在其之上運(yùn)行。
一款開(kāi)源軟件能否在商業(yè)上成功,很大程度上依賴(lài)三件事 ——成功的 user case(用例), 活躍的社區(qū)和一個(gè)好故事。 dotCloud 之家的 PaaS 產(chǎn)品建立在docker之上,長(zhǎng)期維護(hù)且有大量的用戶,社區(qū)也十分活躍,接下看看docker的故事。

  • 環(huán)境管理復(fù)雜 - 從各種OS到各種中間件到各種app, 一款產(chǎn)品能夠成功作為開(kāi)發(fā)者需要關(guān)心的東西太多,且難于管理,這個(gè)問(wèn)題幾乎在所有現(xiàn)代IT相關(guān)行業(yè)都需要面對(duì)。
  • 云計(jì)算時(shí)代的到來(lái) - AWS的成功, 引導(dǎo)開(kāi)發(fā)者將應(yīng)用轉(zhuǎn)移到 cloud 上, 解決了硬件管理的問(wèn)題,然而中間件相關(guān)的問(wèn)題依然存在 (所以openstack HEATAWS cloudformation 都著力解決這個(gè)問(wèn)題)。開(kāi)發(fā)者思路變化提供了可能性。
  • 虛擬化手段的變化 - cloud 時(shí)代采用標(biāo)配硬件來(lái)降低成本,采用虛擬化手段來(lái)滿足用戶按需使用的需求以及保證可用性和隔離性。然而無(wú)論是KVM還是Xen在 docker 看來(lái),都在浪費(fèi)資源,因?yàn)橛脩粜枰氖歉咝н\(yùn)行環(huán)境而非OS, GuestOS既浪費(fèi)資源又難于管理, 更加輕量級(jí)的LXC更加靈活和快速
  • LXC的移動(dòng)性 - LXC在 linux 2.6 的 kernel 里就已經(jīng)存在了,但是其設(shè)計(jì)之初并非為云計(jì)算考慮的,缺少標(biāo)準(zhǔn)化的描述手段和容器的可遷移性,決定其構(gòu)建出的環(huán)境難于遷移和標(biāo)準(zhǔn)化管理(相對(duì)于KVM之類(lèi)imagesnapshot的概念)。docker 就在這個(gè)問(wèn)題上做出實(shí)質(zhì)性的革新。這是docker最獨(dú)特的地方。

面對(duì)上述幾個(gè)問(wèn)題,docker設(shè)想是交付運(yùn)行環(huán)境如同海運(yùn),OS如同一個(gè)貨輪,每一個(gè)在OS基礎(chǔ)上的軟件都如同一個(gè)集裝箱,用戶可以通過(guò)標(biāo)準(zhǔn)化手段自由組裝運(yùn)行環(huán)境,同時(shí)集裝箱的內(nèi)容可以由用戶自定義,也可以由專(zhuān)業(yè)人員制造。這樣,交付一個(gè)軟件,就是一系列標(biāo)準(zhǔn)化組件的集合的交付,如同樂(lè)高積木,用戶只需要選擇合適的積木組合,并且在最頂端署上自己的名字(最后一個(gè)標(biāo)準(zhǔn)化組件是用戶的app)。這也就是基于docker的PaaS產(chǎn)品的原型。

Docker 架構(gòu)

Docker 使用客戶端-服務(wù)器 (C/S) 架構(gòu)模式,使用遠(yuǎn)程API來(lái)管理和創(chuàng)建Docker容器。Docker 容器通過(guò) Docker鏡像來(lái)創(chuàng)建。容器與鏡像的關(guān)系類(lèi)似于面向?qū)ο缶幊讨械膶?duì)象與類(lèi)。

Docker 面向?qū)ο?/th>
容器 對(duì)象
鏡像 類(lèi)

Docker采用 C/S架構(gòu) Docker daemon 作為服務(wù)端接受來(lái)自客戶的請(qǐng)求,并處理這些請(qǐng)求(創(chuàng)建、運(yùn)行、分發(fā)容器)。 客戶端和服務(wù)端既可以運(yùn)行在一個(gè)機(jī)器上,也可通過(guò) socket 或者RESTful API 來(lái)進(jìn)行通信。
Docker daemon 一般在宿主主機(jī)后臺(tái)運(yùn)行,等待接收來(lái)自客戶端的消息。 Docker 客戶端則為用戶提供一系列可執(zhí)行命令,用戶用這些命令實(shí)現(xiàn)跟 Docker daemon 交互。

Docker特性

在docker的網(wǎng)站上提到了docker的典型場(chǎng)景:

  1. Automating the packaging and deployment of applications(使應(yīng)用的打包與部署自動(dòng)化)
  2. Creation of lightweight, private PAAS environments(創(chuàng)建輕量、私密的PAAS環(huán)境)
  3. Automated testing and continuous integration/deployment(實(shí)現(xiàn)自動(dòng)化測(cè)試和持續(xù)的集成/部署)
  4. Deploying and scaling web apps, databases and backend services(部署與擴(kuò)展webapp、數(shù)據(jù)庫(kù)和后臺(tái)服務(wù))

由于其基于LXC的輕量級(jí)虛擬化的特點(diǎn),docker相比KVM之類(lèi)最明顯的特點(diǎn)就是啟動(dòng)快,資源占用小。因此對(duì)于構(gòu)建隔離的標(biāo)準(zhǔn)化的運(yùn)行環(huán)境,輕量級(jí)的PaaS(如dokku), 構(gòu)建自動(dòng)化測(cè)試和持續(xù)集成環(huán)境,以及一切可以橫向擴(kuò)展的應(yīng)用(尤其是需要快速啟停來(lái)應(yīng)對(duì)峰谷的web應(yīng)用)。

  1. 構(gòu)建標(biāo)準(zhǔn)化的運(yùn)行環(huán)境,現(xiàn)有的方案大多是在一個(gè)baseOS上運(yùn)行一套puppet/chef,或者一個(gè)image文件,其缺點(diǎn)是前者需要base OS許多前提條件,后者幾乎不可以修改(因?yàn)閏opy on write 的文件格式在運(yùn)行時(shí)rootfs是read only的)。并且后者文件體積大,環(huán)境管理和版本控制本身也是一個(gè)問(wèn)題。
  2. PaaS環(huán)境是不言而喻的,其設(shè)計(jì)之初和dotcloud的案例都是將其作為PaaS產(chǎn)品的環(huán)境基礎(chǔ)
  3. 因?yàn)槠錁?biāo)準(zhǔn)化構(gòu)建方法(buildfile)和良好的REST API,自動(dòng)化測(cè)試和持續(xù)集成/部署能夠很好的集成進(jìn)來(lái)
  4. 因?yàn)長(zhǎng)XC輕量級(jí)的特點(diǎn),其啟動(dòng)快,而且docker能夠只加載每個(gè)container變化的部分,這樣資源占用小,能夠在單機(jī)環(huán)境下與KVM之類(lèi)的虛擬化方案相比能夠更加快速和占用更少資源

Docker局限

Docker并不是全能的,設(shè)計(jì)之初也不是KVM之類(lèi)虛擬化手段的替代品,簡(jiǎn)單總結(jié)幾點(diǎn):

  1. Docker是基于Linux 64bit的,無(wú)法在32bit的linux/Windows/unix環(huán)境下使用
  2. LXC是基于cgroup等linux kernel功能的,因此container的guest系統(tǒng)只能是linux base的
  3. 隔離性相比KVM之類(lèi)的虛擬化方案還是有些欠缺,所有container公用一部分的運(yùn)行庫(kù)
  4. 網(wǎng)絡(luò)管理相對(duì)簡(jiǎn)單,主要是基于namespace隔離
  5. cgroup的cpu和cpuset提供的cpu功能相比KVM的等虛擬化方案相比難以度量(所以dotcloud主要是按內(nèi)存收費(fèi))
  6. Docker對(duì)disk的管理比較有限
  7. container隨著用戶進(jìn)程的停止而銷(xiāo)毀,container中的log等用戶數(shù)據(jù)不便收集

Docker組成

【Docker】Docker最近這么火,它到底是什么

  • Docker主機(jī)(Host): 一個(gè)物理機(jī)或虛擬機(jī), 用于運(yùn)行Docker服務(wù)進(jìn)程和容器, 也成為宿主機(jī), node節(jié)點(diǎn)
  • Docker服務(wù)器端(Server): Docker守護(hù)進(jìn)程, 運(yùn)行Docker容器
  • Docker客戶端(Client): 客戶端使用docker命令或其他工具調(diào)用docker API
  • Docker倉(cāng)庫(kù)(Registry): 保存鏡像的倉(cāng)庫(kù), 官方倉(cāng)庫(kù):hub.docker.com, 可以搭建私有倉(cāng)庫(kù)harbor
  • Docker鏡像(Images): 鏡像可以理解為創(chuàng)建實(shí)例使用的模本, 相當(dāng)于RPM或者DEB包
  • Docker容器(Container): 容器是從鏡像生成對(duì)外提供服務(wù)的一個(gè)或一組服務(wù), 相當(dāng)于RPM包中的程序運(yùn)行起來(lái)

Docker原理

Docker核心解決的問(wèn)題是利用LXC來(lái)實(shí)現(xiàn)類(lèi)似VM的功能,從而利用更加節(jié)省的硬件資源提供給用戶更多的計(jì)算資源。同VM的方式不同, LXC 其并不是一套硬件虛擬化方法 - 無(wú)法歸屬到全虛擬化、部分虛擬化和半虛擬化中的任意一個(gè),而是一個(gè)操作系統(tǒng)級(jí)虛擬化方法, 理解起來(lái)可能并不像VM那樣直觀。所以可以從虛擬化到docker要解決的問(wèn)題出發(fā),看看docker是怎么滿足用戶虛擬化需求的。

用戶需要考慮虛擬化方法,尤其是硬件虛擬化方法,需要借助其解決的主要是以下4個(gè)問(wèn)題:

  • 隔離性 - 每個(gè)用戶實(shí)例之間相互隔離, 互不影響。 硬件虛擬化方法給出的方法是VM, LXC給出的方法是container,更細(xì)一點(diǎn)是kernel namespace
  • 可配額/可度量 - 每個(gè)用戶實(shí)例可以按需提供其計(jì)算資源,所使用的資源可以被計(jì)量。硬件虛擬化方法因?yàn)樘摂M了CPU, memory可以方便實(shí)現(xiàn), LXC則主要是利用cgroups來(lái)控制資源
  • 移動(dòng)性 - 用戶的實(shí)例可以很方便地復(fù)制、移動(dòng)和重建。硬件虛擬化方法提供snapshot和image來(lái)實(shí)現(xiàn),docker(主要)利用AUFS實(shí)現(xiàn)
  • 安全性 - 這個(gè)話題比較大,這里強(qiáng)調(diào)是host主機(jī)的角度盡量保護(hù)container。硬件虛擬化的方法因?yàn)樘摂M化的水平比較高,用戶進(jìn)程都是在KVM等虛擬機(jī)容器中翻譯運(yùn)行的, 然而對(duì)于LXC, 用戶的進(jìn)程是lxc-start進(jìn)程的子進(jìn)程, 只是在Kernel的namespace中隔離的, 因此需要一些kernel的patch來(lái)保證用戶的運(yùn)行環(huán)境不會(huì)受到來(lái)自host主機(jī)的惡意入侵, dotcloud(主要是)利用kernel grsec patch解決的.

如果這份博客對(duì)大家有幫助,希望各位給恒川一個(gè)免費(fèi)的點(diǎn)贊??作為鼓勵(lì),并評(píng)論收藏一下?,謝謝大家?。。?br> 制作不易,如果大家有什么疑問(wèn)或給恒川的意見(jiàn),歡迎評(píng)論區(qū)留言。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-461816.html

到了這里,關(guān)于【Docker】Docker最近這么火,它到底是什么的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 德納:最近市場(chǎng)熱議的Dmail到底是什么?具體是什么樣子的產(chǎn)品?

    德納:最近市場(chǎng)熱議的Dmail到底是什么?具體是什么樣子的產(chǎn)品?

    Dmail 是一種基于 Dfinity 的新型去中心化 NFT 電子郵件基礎(chǔ)設(shè)施,專(zhuān)為 Web 3.0 時(shí)代而設(shè)計(jì),迎合人們互聯(lián)網(wǎng)最新發(fā)展帶來(lái)的新需求。 成為用戶之間的關(guān)鍵連接點(diǎn),為未來(lái)共享和交換鏈上信息奠定基礎(chǔ)。Dmail 作為區(qū)塊鏈電子郵件服務(wù),是現(xiàn)有電子郵件技術(shù)與區(qū)塊鏈技術(shù)的結(jié)合。借

    2024年02月05日
    瀏覽(17)
  • Redis為什么會(huì)這么快?Redis到底有多快?

    Redis為什么會(huì)這么快?Redis到底有多快?

    官方文檔:https://redis.io/docs/management/optimization/benchmarks/ 我們使用redis自帶的benchmark腳本測(cè)試: 我們發(fā)現(xiàn),每秒可以執(zhí)行11萬(wàn)多次set、lpush命令。 執(zhí)行Lua腳本也能達(dá)到每秒10萬(wàn)多次,按照這個(gè)測(cè)試結(jié)果,redis的10萬(wàn)qps還是比較準(zhǔn)確的,在高性能服務(wù)器上性能還能更強(qiáng)。 總結(jié)起來(lái)主

    2024年02月07日
    瀏覽(22)
  • 最近怎么流量漲這么多?那我開(kāi)始講Hive特性了!

    Hive架構(gòu)原理 a.用戶接口:Client CLI(Hive shell)、JDBC/ODBC(java訪問(wèn)hive)、Hive WEBUI(瀏覽器訪問(wèn)hive)和Thrift服務(wù)器 b.驅(qū)動(dòng)器:Driver 解析器(SQL Parser): 將SQL字符串轉(zhuǎn)換成抽象語(yǔ)法樹(shù)AST ,這一步一般都用第三方工具庫(kù)完成,比如antlr;對(duì)AST進(jìn)行語(yǔ)法分析,比如表是否存在、字段是

    2024年02月03日
    瀏覽(21)
  • 【云原生】 一文了解Docker到底是什么?

    【云原生】 一文了解Docker到底是什么?

    目錄 1.docker是什么? 2.為什么需要docker? 3.docker特點(diǎn) 4.docker架構(gòu) 5.云計(jì)算中的服務(wù)包括三個(gè)層面 6.傳統(tǒng)虛擬化架構(gòu) 7.容器架構(gòu) 8.docker系統(tǒng)架構(gòu) Docker 守護(hù)進(jìn)程 Docker 客戶端 Docker 倉(cāng)庫(kù) Docker 對(duì)象 Images(鏡像) Containers (容器) Service (服務(wù)) 9.docker底層技術(shù) 命名空間(namespac

    2024年02月13日
    瀏覽(26)
  • 現(xiàn)在都在說(shuō) Docker 好,為什么我一用就出現(xiàn)這么多問(wèn)題?查了一宿才解決!

    現(xiàn)在都在說(shuō) Docker 好,為什么我一用就出現(xiàn)這么多問(wèn)題?查了一宿才解決!

    #配置國(guó)內(nèi)源進(jìn)行docker安裝 報(bào)錯(cuò) HTTP Error 404 - Not Found 原因:由于配置國(guó)內(nèi)鏡像源時(shí),把地址寫(xiě)錯(cuò)了,導(dǎo)致后面安裝docker提示HTTP Error 404 解決方法: 1)進(jìn)入到 /etc/yum.repos.d目錄下 ? 如果你想學(xué)習(xí)docker教程,我這邊給你推薦一套視頻,這個(gè)視頻可以說(shuō)是B站播放全網(wǎng)第一的docker教

    2024年02月11日
    瀏覽(53)
  • 最近臺(tái)風(fēng)肆虐,讓我們用Python獲取天氣數(shù)據(jù),分析一下臺(tái)風(fēng)到底要去哪!

    最近臺(tái)風(fēng)肆虐,讓我們用Python獲取天氣數(shù)據(jù),分析一下臺(tái)風(fēng)到底要去哪!

    最近臺(tái)風(fēng)肆虐,已進(jìn)入我國(guó)24小時(shí)警戒線!臺(tái)風(fēng)“卡努”到底要去哪兒? 作為一個(gè)Python程序員,雖然我?guī)筒簧厦?,但是時(shí)時(shí)關(guān)注一下還是可以的,順便祈禱一下臺(tái)風(fēng)往東邊某個(gè)小日子過(guò)得不錯(cuò)的小島吹。 于是我花了一分鐘,用Python寫(xiě)了一個(gè)獲取天氣數(shù)據(jù)的代碼,然后進(jìn)行數(shù)據(jù)

    2024年02月14日
    瀏覽(25)
  • CocoaPods 在iOS開(kāi)發(fā)中養(yǎng)活了這么多項(xiàng)目,它到底是個(gè)啥?

    對(duì)于iOS開(kāi)發(fā)者而言,CocoaPods并不陌生,通過(guò)pod相關(guān)的命令操作,就可以很方便的將項(xiàng)目中用到的三方依賴(lài)庫(kù)資源集成到項(xiàng)目環(huán)境中,大大的提升了開(kāi)發(fā)的效率。CocoaPods作為iOS項(xiàng)目的包管理工具,它在命令行背后做了什么操作?而又是通過(guò)什么樣的方式將命令指令聲明出來(lái)供我

    2024年02月08日
    瀏覽(20)
  • Kafka為什么這么快?

    Kafka 是一個(gè)基于發(fā)布-訂閱模式的消息系統(tǒng),它可以在多個(gè)生產(chǎn)者和消費(fèi)者之間傳遞大量的數(shù)據(jù)。Kafka 的一個(gè)顯著特點(diǎn)是它的高吞吐率,即每秒可以處理百萬(wàn)級(jí)別的消息。那么 Kafka 是如何實(shí)現(xiàn)這樣高得性能呢?本文將從七個(gè)方面來(lái)分析 Kafka 的速度優(yōu)勢(shì)。 零拷貝技術(shù) 僅可追加

    2024年02月11日
    瀏覽(26)
  • Netty為什么高效,為什么這么受歡迎?

    Netty為什么高效,為什么這么受歡迎?

    上篇文章通過(guò) Java NIO 的處理流程與 Netty 的總體流程比較,并結(jié)合 Netty 的源碼,可以更加清晰地理解Netty。本文將結(jié)合源碼詳細(xì)解析Netty的高效和強(qiáng)大功能的設(shè)計(jì)原理,學(xué)習(xí) Netty 是如何實(shí)現(xiàn)其卓越的性能和功能特性,也希望可以在日后工作中利用到 Netty 的設(shè)計(jì)思想。 我們先看

    2024年02月12日
    瀏覽(41)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包