Docker基礎(chǔ)(介紹)

Docker是一個開放源代碼軟件項目,讓應(yīng)用程序布署在軟件容器下的工作可以自動化進(jìn)行,借此在Linux操作系統(tǒng)上郊楣,提供一個額外的軟件抽象層,以及操作系統(tǒng)層虛擬化的自動管理機(jī)制瓤荔。 Docker利用Linux核心中的資源分脫機(jī)制净蚤,例如cgroups,以及Linux核心名字空間输硝,來創(chuàng)建獨立的軟件容器今瀑。 維基百科

1.png

1.什么是Docker?

Docker 是世界領(lǐng)先的軟件容器平臺点把。開發(fā)人員利用 Docker 可以消除協(xié)作編碼時“在我的機(jī)器上可正常工作”的問題橘荠。運維人員利用 Docker 可以在隔離容器中并行運行和管理應(yīng)用,獲得更好的計算密度郎逃。企業(yè)利用 Docker 可以構(gòu)建敏捷的軟件交付管道哥童,以更快的速度、更高的安全性和可靠的信譽為 Linux 和 Windows Server 應(yīng)用發(fā)布新功能褒翰。

Docker 屬于 Linux 容器的一種封裝贮懈,提供簡單易用的容器使用接口。它是目前最流行的 Linux 容器解決方案优训。Docker 將應(yīng)用程序與該程序的依賴错邦,打包在一個文件里面。運行這個文件型宙,就會生成一個虛擬容器撬呢。程序在這個虛擬容器里運行,就好像在真實的物理機(jī)上運行一樣妆兑。有了 Docker魂拦,就不用擔(dān)心環(huán)境問題。

總體來說搁嗓,Docker 的接口相當(dāng)簡單芯勘,用戶可以方便地創(chuàng)建和使用容器,把自己的應(yīng)用放入容器腺逛。容器還可以進(jìn)行版本管理荷愕、復(fù)制、分享、修改安疗,就像管理普通的代碼一樣抛杨。

Docker 最初是 dotCloud 公司創(chuàng)始人 Solomon Hykes 在法國期間發(fā)起的一個公司內(nèi)部項目,它是基于 dotCloud 公司多年云服務(wù)技術(shù)的一次革新荐类,并于 2013 年 3 月以 Apache 2.0 授權(quán)協(xié)議開源怖现,主要項目代碼在 GitHub 上進(jìn)行維護(hù)。Docker 項目后來還加入了 Linux 基金會玉罐,并成立推動 開放容器聯(lián)盟(OCI)屈嗤。

2.為什么要使用Docker?

Docker極大的解決了環(huán)境配置問題吊输,真正實現(xiàn)了“一次配置饶号,到處運行”的效果。之前我在做服務(wù)器的集群的時候季蚂,通常是手動的在每臺機(jī)器上配置環(huán)境茫船,但是這個過程中容易出錯,很難發(fā)現(xiàn)錯誤的來源癣蟋,又需要一步步檢驗錯誤的來源透硝,這樣浪費了很多時間。現(xiàn)在有了Docker才算真正解決了這個問題疯搅。

3.Docker的優(yōu)點

Docker在開發(fā)和運維過程中濒生,具有如下幾個方面的優(yōu)勢:

  • 1、更快速的交付和部署幔欧。使用Docker罪治,開發(fā)人員可以使用鏡像來快速構(gòu)建一套標(biāo)準(zhǔn)的開發(fā)環(huán)境;開發(fā)完成之后礁蔗,測試人員和運維人員可以直接使用完全相同的環(huán)境來部署代碼觉义。
  • 2、更高效的資源利用浴井。Docker容器不需要額外的虛擬化管理程序(Virtual Machine Manager晒骇,VMM,以及Hypervisor)支持磺浙,它是內(nèi)核級的虛擬化洪囤,可以實現(xiàn)更高的性能,同時對資源的額外需求很低撕氧。
  • 3瘤缩、更輕松的遷移和擴(kuò)展。Docker容器幾乎可以在任意平臺上運行伦泥,包括物理機(jī)剥啤、虛擬機(jī)锦溪、公有云、私有云府怯、個人電腦刻诊、服務(wù)器等,同時支持主流的操作系統(tǒng)發(fā)行版富腊。
  • 4坏逢、更簡單的更新管理域帐。使用Dockerfile赘被,只需要小小的配置修改,就可以替代以往大量的更新工作肖揣。并且所有修改都以增量的方式被分發(fā)和更新民假,從而實現(xiàn)自動化并且高效的同期管理。

4.Docker vs VM

a??docker vs VMa???????????????′¢??????

作為一種輕量級的虛擬化方式龙优,Docker在運行應(yīng)用上與傳統(tǒng)的虛擬機(jī)方式相比具有顯著的優(yōu)勢:

  • 1羊异、Docker容器很快,啟動和停止可以在秒級實現(xiàn)彤断,而傳統(tǒng)的虛擬機(jī)方式需要數(shù)分鐘野舶;
  • 2、Docker容器對系統(tǒng)資源需求很少宰衙,一臺主機(jī)上可以同時運行數(shù)千個Docker容器平道;
  • 3、Docker通過類似Git設(shè)計理念的操作方便用戶獲取供炼、分發(fā)和更新應(yīng)用鏡像一屋,存儲復(fù)用,增量更新袋哼;
  • 4冀墨、Docker通過Dockerfile支持靈活的自動化創(chuàng)建和部署機(jī)制,提供工作效率涛贯,使流程標(biāo)準(zhǔn)化诽嘉。

5.Docker的工作機(jī)制

Docker Engine一個是CS架構(gòu),主要有兩個概念:

  • 1弟翘、Docker daemon:運行在宿主機(jī)上虫腋,Docker守護(hù)進(jìn)程,用戶通過Docker Client(Docker命令)與Docker daemon交互衅胀。
  • 2岔乔、Docker Client:Docker命令行工具,是用戶使用Docker的主要方式滚躯,Docker ClientDocker daemon通信并將結(jié)果返回給用戶雏门,Docker Client也可以通過socket或者RESTful API訪問遠(yuǎn)程的Docker daemon嘿歌。
Docker?????????????μ??¨?

了解了Docker的基本組成,在來了解一下Docker的三大核心概念:

  • 1茁影、Docker Image:Docker鏡像類似于虛擬機(jī)鏡像宙帝,可以將它理解為一個只讀的模板。例如募闲,一個鏡像可以包含一個基本的操作系統(tǒng)環(huán)境步脓,里面僅安裝了Apache應(yīng)用程序。鏡像用來創(chuàng)建Container浩螺,一個鏡像可以運行多個Container靴患;鏡像可以通過Dockerfile創(chuàng)建,也可以從Docker Hub/Registry上下載要出。
  • 2鸳君、Docker Container:Docker類似于一個輕量級的沙箱,Docker利用容器來運行和隔離應(yīng)用患蹂。容器是從鏡像創(chuàng)建的應(yīng)用運行實例或颊,容器時一個隔離的環(huán)境,多個容器之間不會相互影響传于,保證容器中的程序運行在一個相對安全的環(huán)境中囱挑。(可以把容器看做是一個簡易版的Linux系統(tǒng)環(huán)境,包括root用戶權(quán)限沼溜、進(jìn)程空間平挑、用戶空間和網(wǎng)絡(luò)空間等,以及運行在其中的應(yīng)用程序打包而成的盒子)
  • 3盛末、Docker Hub/Registry:共享和管理Docker鏡像弹惦,用戶可以上傳或者下載上面的鏡像。
image.png

鏡像自身是只讀的悄但。容器從鏡像啟動的時候棠隐,會在鏡像的最上層創(chuàng)建一個可寫層。

image.png

6.Docker底層的技術(shù)依賴

Docker使用Go編寫的檐嚣,它利用了Linux內(nèi)核的幾個核心技術(shù)來提供其功能助泽。

1.Namespaces

Docker使用一種稱為namespaces提供隔離工作空間的技術(shù),這種技術(shù)稱為容器嚎京,當(dāng)您運行容器時嗡贺,Docker會為該容器創(chuàng)建一組namespaces。這些命名空間提供了一層隔離鞍帝。容器的每個方面都在單獨的命名空間中運行诫睬,其訪問權(quán)限僅僅限于該命名空間。

image.png

2.Control groups

Linux上的Docker Engine還依賴于另一種稱為控制組cgroups)的技術(shù)帕涌。cgroup將應(yīng)用程序限制為特定的一組資源摄凡⌒眨控制組允許Docker Engine將可用的硬件資源共享給容器,并可選擇強(qiáng)制執(zhí)行限制和約束亲澡。例如钦扭,您可以限制特定容器的可用內(nèi)存。(用來分配資源床绪,資源分配客情、優(yōu)先級設(shè)定、資源計量癞己、資源控制)膀斋。

3.Union file systems

聯(lián)合文件系統(tǒng)或UnionFS是通過創(chuàng)建層來操作的文件系統(tǒng),使它們非常輕量和快速末秃。Docker Engine使用UnionFS為容器提供構(gòu)建塊概页。Docker Engine可以使用多種UnionFS變體籽御,包括AUFS练慕,btrfsvfsDeviceMapper技掏。

4.Container format

Docker Engine將命名空間铃将,控制組和UnionFS組合到一個稱為容器格式的包裝器中。默認(rèn)的容器格式是libcontainer哑梳。將來劲阎,Docker可以通過與BSD JailsSolaris Zones等技術(shù)集成來支持其他容器格式。

參考資料

http://www.ityouknow.com/docker/2018/03/07/docker-introduction.html

http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

https://docs.docker.com/engine/docker-overview/#the-underlying-technology

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸠真,一起剝皮案震驚了整個濱河市悯仙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吠卷,老刑警劉巖锡垄,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異祭隔,居然都是意外死亡货岭,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門疾渴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來千贯,“玉大人,你說我怎么就攤上這事搞坝∩η矗” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵桩撮,是天一觀的道長敦第。 經(jīng)常有香客問我慌核,道長,這世上最難降的妖魔是什么申尼? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任垮卓,我火速辦了婚禮,結(jié)果婚禮上师幕,老公的妹妹穿的比我還像新娘粟按。我一直安慰自己,他們只是感情好霹粥,可當(dāng)我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布灭将。 她就那樣靜靜地躺著,像睡著了一般后控。 火紅的嫁衣襯著肌膚如雪庙曙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天浩淘,我揣著相機(jī)與錄音捌朴,去河邊找鬼。 笑死张抄,一個胖子當(dāng)著我的面吹牛砂蔽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播署惯,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼左驾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了极谊?” 一聲冷哼從身側(cè)響起诡右,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轻猖,沒想到半個月后帆吻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡蜕依,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年桅锄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片样眠。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡友瘤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出檐束,到底是詐尸還是另有隱情辫秧,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布被丧,位于F島的核電站盟戏,受9級特大地震影響绪妹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柿究,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一邮旷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝇摸,春花似錦婶肩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至啡专,卻和暖如春险毁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背们童。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工畔况, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人病附。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓问窃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親完沪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容