C.1 docker overview

概述

docker 是一個(gè)開發(fā)鼓鲁、交付和運(yùn)行的開放平臺(tái)蕴轨。docker 能使你的應(yīng)用和基礎(chǔ)設(shè)施解耦,從而使軟件交付更加的敏捷骇吭。docker 能像管理軟件一樣管理基礎(chǔ)設(shè)施橙弱。利用 docker 的特性,能快速的打包、測(cè)試和部署代碼棘脐,從而明顯的減少編寫的代碼部署到生產(chǎn)環(huán)境的周期斜筐。

docker 的打包和運(yùn)行應(yīng)用程序都是具有獨(dú)立的環(huán)境,體現(xiàn)了其隔離特性蛀缝。docker 不需要像虛擬機(jī)一樣去虛擬硬件顷链,而是直接運(yùn)行在主機(jī)的內(nèi)核上,體現(xiàn)輕量特性内斯。這些特性可以讓更多的容器運(yùn)行在同一個(gè)物理機(jī)或者虛擬機(jī)上蕴潦。

docker 提供的能力:

  • 將應(yīng)用放入容器中
  • 讓容器作為測(cè)試和交付的單元
  • 以容器的形式或者編排服務(wù)的形式部署于生產(chǎn)環(huán)境》常可以是本地?cái)?shù)據(jù)中心潭苞,也可以是云主機(jī)

docker 官網(wǎng)介紹:

Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.

Docker provides the ability to package and run an application in a loosely isolated environment called a container. The isolation and security allow you to run many containers simultaneously on a given host. Containers are lightweight because they don’t need the extra load of a hypervisor, but run directly within the host machine’s kernel. This means you can run more containers on a given hardware combination than if you were using virtual machines. You can even run Docker containers within host machines that are actually virtual machines!

組成結(jié)構(gòu)

docker engine 的組成部分:

  • docker CLI:接收并解析客戶端發(fā)送來的指令,例如:docker run
  • REST API:用來和 daemon 交互的 API 接口
  • docker daemon:docker 的守護(hù)進(jìn)程真朗,負(fù)責(zé)執(zhí)行客戶端發(fā)送來的命令
image

docker engine 的職能:

  • 管理鏡像
  • 管理容器
  • 管理網(wǎng)絡(luò)
  • 管理卷(掛載在宿主機(jī)的文件系統(tǒng))

體系結(jié)構(gòu)

  • C/S 架構(gòu)此疹,客戶端(Client)和服務(wù)端(docker 守護(hù)進(jìn)程-Docker daemon)
  • 客戶端負(fù)責(zé)發(fā)送構(gòu)建(docker build)、拉日谏簟(docker pull)蝗碎、運(yùn)行(docker run)指令
  • 守護(hù)進(jìn)程負(fù)責(zé)執(zhí)行構(gòu)建、拉取旗扑、啟動(dòng)指令
  • 守護(hù)進(jìn)程從倉庫(Registry)拉取鏡像(Images)
  • 守護(hù)進(jìn)程將本地的鏡像啟動(dòng)后變?yōu)槿萜鳎–ontainers)
  • 客戶端和守護(hù)進(jìn)程之間使用REST api蹦骑、unix套接字進(jìn)行通信
  • 客戶端和守護(hù)進(jìn)程可以在同一個(gè)系統(tǒng)上運(yùn)行

docker 官方提供的架構(gòu)圖

image

特點(diǎn)

  • 讓復(fù)雜的安裝一條命令解決
  • 讓服務(wù)秒級(jí)啟動(dòng)
  • 讓資源最大化使用
  • 隔離性,文件隔離臀防、資源隔離眠菇、網(wǎng)絡(luò)隔離

名詞解釋

  • 倉庫:存放鏡像的場(chǎng)所,類似于maven庫袱衷,npm庫
  • 鏡像:只讀的程序包捎废,類似與jar包,npm包致燥,可以疊加很多層
  • 容器:鏡像運(yùn)行后形成的一個(gè)實(shí)例登疗,一個(gè)鏡像可以啟動(dòng)多個(gè)容器,類似于jar啟動(dòng)的進(jìn)程
  • tag:鏡像的標(biāo)簽嫌蚤,相當(dāng)于版本號(hào)
  • docker client:客戶端通過命令與守護(hù)進(jìn)程交互辐益,類似于 mysql 客戶端
  • docker daemon:docker 的守護(hù)進(jìn)程,接收并執(zhí)行客戶端發(fā)送來的指令搬葬,類似于mysql服務(wù)端
  • docker host:運(yùn)行 docker 守護(hù)進(jìn)程和容器的宿主機(jī)器(物理機(jī)/虛擬機(jī))
  • docker-io:就是docker荷腊,ubuntu在維護(hù)(不是非常清楚)
  • docker-engine:就是docker,docker deamon + REST API + docker CLI
  • docker-ce:社區(qū)版本急凰,免費(fèi),在docker17及以上開始普及docker-ce和docker-ee
  • docker-ee:企業(yè)版本,收費(fèi)抡锈,docker準(zhǔn)備收割的利器
  • docker-machine:創(chuàng)建docker host的工具疾忍,可以在一臺(tái)物理機(jī)上模擬多個(gè)docker環(huán)境
  • docker swarm:docker的集群管理工具,(1.12及以上版本內(nèi)置了swarm)
  • docker compose:單機(jī)版的docker服務(wù)編排工具床三,使用compose file v1/v2面向容器編排設(shè)計(jì)
  • docker stack:docker stack deploy一罩,跨宿主機(jī)的服務(wù)編排,使用compose file V3版本撇簿。(1.13及以上版本內(nèi)置了stack)
  • AFUS:docker的分層文件系統(tǒng)聂渊,上層依賴底層。Docker鏡像是由多個(gè)文件系統(tǒng)(只讀層)疊加而成
  • docker volume:由于容器中存儲(chǔ)數(shù)據(jù)容易丟失四瘫,所以將持久化的數(shù)據(jù)以映射的形式汉嗽,將宿主機(jī)的目錄掛載到容器的目錄上。類似于服務(wù)器的共享存儲(chǔ)找蜜。

版本說明

  • 低版本的docker沒有swarm功能饼暑,必須在1.12版本及以上
  • 1.13版本以上docker自帶stack
  • 1.12發(fā)布于2016.6,適合centos-7-1511
  • 1.13發(fā)布于2017.1洗做,適合centos-7-1611

容器和虛擬機(jī)的區(qū)別

虛擬機(jī)(Virtual Machine):
虛擬硬件設(shè)備作為基礎(chǔ)設(shè)施弓叛,每個(gè)虛擬機(jī)擁有獨(dú)享的內(nèi)核,能運(yùn)行完整的操作系統(tǒng)诚纸,操作系統(tǒng)級(jí)別的隔離撰筷。

容器LXC(Linux Container):
輕量級(jí)的虛擬化,生成獨(dú)立的運(yùn)行環(huán)境畦徘,和主機(jī)共享內(nèi)核毕籽,應(yīng)用程序級(jí)別的隔離。

參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末旧烧,一起剝皮案震驚了整個(gè)濱河市影钉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掘剪,老刑警劉巖平委,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異夺谁,居然都是意外死亡廉赔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門匾鸥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜡塌,“玉大人,你說我怎么就攤上這事勿负×蟀” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長琅摩。 經(jīng)常有香客問我铁孵,道長,這世上最難降的妖魔是什么房资? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任蜕劝,我火速辦了婚禮,結(jié)果婚禮上轰异,老公的妹妹穿的比我還像新娘岖沛。我一直安慰自己,他們只是感情好搭独,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布婴削。 她就那樣靜靜地躺著,像睡著了一般戳稽。 火紅的嫁衣襯著肌膚如雪馆蠕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天惊奇,我揣著相機(jī)與錄音互躬,去河邊找鬼。 笑死颂郎,一個(gè)胖子當(dāng)著我的面吹牛吼渡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乓序,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼寺酪,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了替劈?” 一聲冷哼從身側(cè)響起寄雀,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體气堕,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡璧坟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年薪缆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖卓嫂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情聘殖,我是刑警寧澤晨雳,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布行瑞,位于F島的核電站,受9級(jí)特大地震影響悍募,放射性物質(zhì)發(fā)生泄漏蘑辑。R本人自食惡果不足惜洋机,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一坠宴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绷旗,春花似錦喜鼓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至角骤,卻和暖如春隅忿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背邦尊。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工背桐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蝉揍。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓链峭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親又沾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子弊仪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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

  • Docker — 云時(shí)代的程序分發(fā)方式 要說最近一年云計(jì)算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,514評(píng)論 15 147
  • 以下原文轉(zhuǎn)載于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend閱讀 7,551評(píng)論 0 17
  • 一杖刷、Docker 簡介 Docker 兩個(gè)主要部件:Docker: 開源的容器虛擬化平臺(tái)Docker Hub: 用...
    R_X閱讀 4,382評(píng)論 0 27
  • docker基本概念 1. Image Definition 鏡像 Image 就是一堆只讀層 read-only...
    慢清塵閱讀 8,728評(píng)論 1 21
  • 文/洛小簡 1夜色深深沉默了寒冰励饵,末班車車內(nèi)蕩蕩空空,她卻還要以疲憊的心迎黎明滑燃。 2飛鳥飛不過寂寞的海役听,可他的愛,...
    洛小簡閱讀 443評(píng)論 0 2