国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

初識docker

2019-11-14 12:56:39
字體:
供稿:網(wǎng)友

Docker經(jīng)過這么幾年的發(fā)展,到如今更是火熱到即使你沒吃過豬也見過豬跑的地步,本節(jié)會給大家介紹docker的一些含義,讓大家了解docker

什么是Docker

Docker是一個開放源代碼軟件項目,讓應(yīng)用程序布署在軟件容器下的工作可以自動化進(jìn)行,借此在linux操作系統(tǒng)上,提供一個額外的軟件抽象層,以及操作系統(tǒng)層虛擬化的自動管理機(jī)制。Docker利用Linux核心中的資源分離機(jī)制,例如cgroups,以及Linux核心命名空間(name space),來建立獨立的軟件容器(containers)。這可以在單一Linux實體下運作,避免啟動一個虛擬機(jī)器造成的額外負(fù)擔(dān)。

——摘自維基百科

Docker到底牛逼在哪里

docker的中文含義 碼頭工人 ,這個翻譯初看會覺得很怪異,其實官方取名這個名字有包含隱喻的意思在內(nèi).

我們再看看docker的logo,一頭像船的鯨魚上面裝載著許許多多的箱子,結(jié)合* 碼頭工人* 的意思,我們其實可以想到* 集裝箱* 這個概念, 集裝箱 是全球物流系統(tǒng)中一個非常重要的發(fā)明,他帶來了物流的規(guī)范化,統(tǒng)一化,極大的節(jié)約了人力物理和時間成本。

圖示

集裝箱的作用

我們可以想想在集裝箱這個定義出來之前的貨物運輸:貨物一箱箱的搬上貨車送到附近的火車站,然后一箱箱卸下,再一箱箱的搬上火車運送到附近的碼頭…

上述的過程中不難發(fā)現(xiàn)大量的人力和時間成本都花費在一箱箱的搬運上面,在運輸速度一定的情況下,裝卸就成為了物流的瓶頸。

在* 集裝箱 *出現(xiàn)后這個問題得到了極大的改善。集裝箱重要在它提供了一種通用的封裝貨物的標(biāo)準(zhǔn)規(guī)格(尺寸,外形符合統(tǒng)一標(biāo)準(zhǔn)),這樣就產(chǎn)生了一個巨大的優(yōu)點:在物流運輸中只需要在運輸前一次封裝,集裝箱就可以放上火車,卡車,拉到碼頭,直接放在貨船上;卸船之后直接再放上火車,卡車,運送到目的地。而且由于集裝箱符合統(tǒng)一標(biāo)準(zhǔn),整個流程非常容易機(jī)械化,這引發(fā)了以集裝箱為中心的整個全球物流的標(biāo)準(zhǔn)化進(jìn)程,從而節(jié)省了大量的時間資源和人力資源,成本迅速下降,促進(jìn)了全球資源的流動與重新配置。

Docker與集裝箱

docker就像碼頭的工人一樣,把應(yīng)用打包為一個個封裝好的標(biāo)準(zhǔn)集裝箱,就是大家口中經(jīng)常鏡像文件。那docker為業(yè)內(nèi)帶來了什么呢?

docker誕生以前,運維的蠻荒時代

以前我們搭建一個網(wǎng)站,你可能會裝php,MySQL,Apache等等一堆軟件,好花費大半天的時間這個網(wǎng)站能正常運行起來了。

一段時間后我們需要更高的PHP版本來搭建一個其他類型的網(wǎng)站,版本沖突了咋整?一番google后,費了九牛二虎之力兩個網(wǎng)站終于能共同運行了。

老板后來告訴你由于網(wǎng)站太火爆了我們需要換一臺服務(wù)器遷移過去,于是你又不得不巴拉巴拉的折騰一番將所有的環(huán)境重新配置一遍。

老板小手一拍,我們要優(yōu)化我們的服務(wù),在全國各地都建立節(jié)點提供服務(wù),你掰一掰的你手指頭發(fā)現(xiàn)有數(shù)不清的環(huán)境需要搭建,你的內(nèi)心是崩潰的。

docker出現(xiàn)后,我們步入了工業(yè)時代

就和 集裝箱 一樣,docker為我們帶來的是標(biāo)準(zhǔn),具體一點說就是鏡像。在docker當(dāng)中鏡像其實就是你把一大包工具打包成一個集裝箱交于docker運行,鏡像與鏡像之間互不影響(集裝箱與集裝箱之間也是互不影響運輸)。

在docker中,鏡像是無法直接運行的,我猜想這并不是技術(shù)上的原因,而是工程設(shè)計上的原因。因為一般來說,一個軟件的某個具體版本只會打包成一個鏡像。如果鏡像可以配置,運行的話,在使用過程中很可能會對鏡像造成破壞。

那怎么樣避免這個問題呢,就是再加一層,也就是相當(dāng)于用了分身術(shù),只要本尊沒問題,分身怎么撲街都不會真正的跪掉。多加的這一層分身,就叫容器(Container),這個名字也挺形象,它就像個盒子一樣,你的應(yīng)用在里面運行,而且多了一層安全機(jī)制。你想使用服務(wù)或把你的應(yīng)用跑起來的話,只需要使用鏡像新創(chuàng)建一個容器就可以了(也是一條命令搞定),而鏡像還放在那里不動,沒辦法,金貴嘛。

docker究竟做了什么?

docker正是在部署過程中,將上面那些重復(fù)的部分,由docker自動化完成。只需要在第一次部署時,構(gòu)建完可用的docker鏡像。然后在以后使用的過程中,短短的幾行命令,就可以直接拉取鏡像,根據(jù)這個鏡像創(chuàng)建出一個容器,把服務(wù)跑起來了。所需要的僅僅是安裝了docker的服務(wù)器,一個Dockerfile文件,以及比較流暢的網(wǎng)絡(luò)而已。真可謂 一次構(gòu)建,到處部署 。

需要nginx,直接pull nginx鏡像完事遷移服務(wù)器?直接下載一個非常小的Dockerfile,安裝一個docker環(huán)境即可,簡單的不能在簡單多個版本共存?新建一個鏡像,愛用哪個版本用哪個,容器的隔離性讓我們就是這么任性

到這個地方,你可能已經(jīng)發(fā)現(xiàn)了,docker鏡像成為了一種像集裝箱那樣的標(biāo)準(zhǔn)貨件。它不像傳統(tǒng)的軟件交付方式那樣,只把代碼以及說明文檔之類的給你就完了,而是直接給你一個標(biāo)準(zhǔn)docker貨件,它可能是Dockerfile,或者直接就是鏡像,這個標(biāo)準(zhǔn)件不僅包括了代碼本身,還包括了代碼運行的OS等各種整體環(huán)境。

于是,誰想用我的服務(wù),直接拉取鏡像,實例化一個容器就可以了,能直接提供你所要的服務(wù),不再像之前那樣有繁復(fù)的安裝過程————這些都有人給你做過了。

與傳統(tǒng)虛擬機(jī)對比

有人可能會說,這些不是虛擬機(jī)都做到了么,還要docker干嘛?

傳統(tǒng)虛擬機(jī)就像一個老爺爺,走路晃晃悠悠,還需要分配資源,給予照顧才行。反觀docker則像是一個健步如飛的年輕小伙子,干啥事都是一個字* 快*。

容器不需要進(jìn)行硬件虛擬以及運行完整操作系統(tǒng)等額外開銷,Docker 對系統(tǒng)資源的利用率更高。無論是應(yīng)用執(zhí)行速度、內(nèi)存損耗或者文件存儲速度,都要比傳統(tǒng)虛擬機(jī)技術(shù)更高效。因此,相比虛擬機(jī)技術(shù),一個相同配置的主機(jī),往往可以運行更多數(shù)量的應(yīng)用。傳統(tǒng)的虛擬機(jī)技術(shù)啟動應(yīng)用服務(wù)往往需要數(shù)分鐘,而 Docker 容器應(yīng)用,由于直接運行于宿主內(nèi)核,無需啟動完整的操作系統(tǒng),因此可以做到秒級、甚至毫秒級的啟動時間。大大的節(jié)約了開發(fā)、測試、部署的時間。Docker 使用的分層存儲以及鏡像的技術(shù),使得應(yīng)用重復(fù)部分的復(fù)用更為容易,也使得應(yīng)用的維護(hù)更新更加簡單,基于基礎(chǔ)鏡像進(jìn)一步擴(kuò)展鏡像也變得非常簡單。此外,Docker 團(tuán)隊同各個開源項目團(tuán)隊一起維護(hù)了一大批高質(zhì)量的官方鏡像,既可以直接在生產(chǎn)環(huán)境使用,又可以作為基礎(chǔ)進(jìn)一步定制,大大的降低了應(yīng)用服務(wù)的鏡像制作成本。

下圖是docker與傳統(tǒng)虛擬機(jī)性能對比。

圖示

轉(zhuǎn)自: http://xgfe.github.io/2016/12/21/scliuyang/docker1/?utm_source=tuicool&utm_medium=referral


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新建县| 赣榆县| 忻州市| 车险| 裕民县| 松潘县| 东乌珠穆沁旗| 林州市| 遂川县| 观塘区| 永寿县| 曲阜市| 中西区| 大埔县| 延长县| 张家口市| 大兴区| 北海市| 庄河市| 兖州市| 贵德县| 株洲市| 尼玛县| 朝阳区| 抚松县| 婺源县| 雷州市| 阿勒泰市| 金塔县| 剑川县| 高州市| 云浮市| 婺源县| 迭部县| 新蔡县| 保德县| 普洱| 武山县| 高邑县| 平安县| 廉江市|