03-Docker基礎(chǔ)知識(shí)

1 虛擬化技術(shù)與Docker的比較

  • 什么是虛擬化技術(shù)
    虛擬化技術(shù)就是在一臺(tái)物理計(jì)算機(jī)上猾担,通過中間虛擬軟件層Hypervisor隔離CPU、內(nèi)存等硬件資源讶凉,虛擬出多臺(tái)虛擬服務(wù)器辙谜,這樣做的話,一臺(tái)物理服務(wù)器便可以安裝多個(gè)應(yīng)用程序肝匆,達(dá)到資源利用的最大化粒蜈,而且多個(gè)應(yīng)用之間相互隔離,如下圖所示:


    image.png
  • 虛擬機(jī)的優(yōu)點(diǎn)
    可以把資源分配到不同的虛擬機(jī)旗国,達(dá)到硬件資源的最大化利用
    與直接在物理機(jī)上部署應(yīng)用枯怖,虛擬更容易擴(kuò)展應(yīng)用。
    云服務(wù):通過虛擬機(jī)虛擬出不同的物理資源能曾,可以快速搭建云服務(wù)度硝。
  • 虛擬機(jī)的不足之處
    虛擬機(jī)的不足之外來自于對(duì)物理服務(wù)器資源的消耗,當(dāng)我們?cè)谖锢矸?wù)器創(chuàng)建一臺(tái)虛擬機(jī)時(shí)寿冕,便需要虛擬出一套硬件并在上面運(yùn)行完整的操作系統(tǒng)蕊程,每臺(tái)虛擬機(jī)都占用許多的服務(wù)器資源。
  • Docker是什么
    相對(duì)于虛擬機(jī)的笨重驼唱,Docker則更顯得輕量化藻茂,因此不會(huì)占用太多的系統(tǒng)資源。
    Docker是使用時(shí)下很火的Golang語言進(jìn)行開發(fā)的,其技術(shù)核心是Linux內(nèi)核的Cgroup辨赐,Namespace和AUFS類的Union FS等技術(shù)优俘,這些技術(shù)都是Linux內(nèi)核中早已存在很多年的技術(shù),所以嚴(yán)格來說并不是一個(gè)完全創(chuàng)新的技術(shù)掀序,Docker通過這些底層的Linux技術(shù)帆焕,對(duì)Linux進(jìn)程進(jìn)行封裝隔離,而被隔離的進(jìn)程也被稱為容器森枪,完全獨(dú)立于宿主機(jī)的進(jìn)程视搏。如果你想和更多Docker技術(shù)專家交流,可以加我微信liyingjiese县袱,備注『加群』浑娜。群里每周都有全球各大公司的最佳實(shí)踐以及行業(yè)最新動(dòng)態(tài)。
    所以Docker是容器技術(shù)的一種實(shí)現(xiàn)式散,也是操作系統(tǒng)層面的一種虛擬化筋遭,與虛擬機(jī)的通過一套硬件再安裝操作系統(tǒng)完全不同。


    image.png
  • Docker與虛擬機(jī)之間的比較
    Docker是在操作系統(tǒng)進(jìn)程層面的隔離暴拄,而虛擬機(jī)是在物理資源層面的隔離


    image.png

2 容器解決了開發(fā)與生產(chǎn)環(huán)境的問題

開發(fā)環(huán)境與生產(chǎn)環(huán)境折射的是開發(fā)人員與運(yùn)維人員之間的矛盾漓滔,也許我們常常會(huì)聽到開發(fā)人員對(duì)運(yùn)維人員說的這樣一句話:“在我的電腦運(yùn)行沒問題,怎么到了你那里就出問題了乖篷,肯定是你的問題”响驴,而運(yùn)維人員是認(rèn)為是開發(fā)人員的問題。
容器就是一個(gè)不錯(cuò)的解決方案撕蔼,容器能成為開發(fā)與運(yùn)維之間溝通的語言豁鲤,因?yàn)槿萜骶拖褚粋€(gè)集裝箱一樣,提供了軟件運(yùn)行的最小化環(huán)境鲸沮,將應(yīng)用與其需要的環(huán)境一起打包成為鏡像琳骡,便可以在開發(fā)與運(yùn)維之間溝通與傳輸。

3 Docker的版本

Docker分為社區(qū)版(CE)和企業(yè)版(EE)兩個(gè)版本讼溺,社區(qū)版本可以免費(fèi)使用楣号,而企業(yè)版則需要付費(fèi)使用,對(duì)于我們個(gè)人開發(fā)者或小企業(yè)來說怒坯,一般是使用社區(qū)版的炫狱。
Docker CE有三個(gè)更新頻道,分別為stable剔猿、test毕荐、nightly,stable是穩(wěn)定版本艳馒,test是測(cè)試后的預(yù)發(fā)布版本,而nightly則是開發(fā)中準(zhǔn)備在下一個(gè)版本正式發(fā)布的版本

4 Docker的組成與架構(gòu)

Docker跟大部分服務(wù)端軟件一樣(如MySQL),都是使用C/S的架構(gòu)模型弄慰,也就是通過客戶端調(diào)用服務(wù)器第美,只是我們現(xiàn)在剛好服務(wù)端和客戶端都在同一臺(tái)機(jī)器上而已。
因此陆爽,我們可以使用下面的圖來表示Docker的架構(gòu)什往,DOCKER_HOST是Docker Server,而Clinet便是我們?cè)诿钪惺褂肈ocker命令慌闭。


image.png

5 Docker Engine

Docker Server為客戶端提供了容器别威、鏡像、數(shù)據(jù)卷驴剔、網(wǎng)絡(luò)管理等功能省古,其實(shí),這些功能都是由Docker Engine來實(shí)現(xiàn)的丧失。
dockerd:服務(wù)器守護(hù)進(jìn)程豺妓。
Client docker Cli:命令行接口
REST API:除了cli命令行接口,也可以通過REST API調(diào)用Docker
下面是Docker Engine的示例圖:


image.png

6 Docker的基本概念

鏡像(Image)布讹、容器(Container)與倉庫(Repository)琳拭,這三個(gè)是Docker中最基本也是最核心的概念,對(duì)這三個(gè)概念的掌握與理解描验,是學(xué)習(xí)Docker的關(guān)鍵白嘁。

  • 鏡像(Image)
    Docker本質(zhì)上是一個(gè)運(yùn)行在Linux操作系統(tǒng)上的應(yīng)用,而Linux操作系統(tǒng)分為內(nèi)核和用戶空間膘流,無論是CentOS還是Ubuntu絮缅,都是在啟動(dòng)內(nèi)核之后,通過掛載Root文件系統(tǒng)來提供用戶空間的睡扬,而Docker鏡像就是一個(gè)Root文件系統(tǒng)盟蚣。
    Docker鏡像是一個(gè)特殊的文件系統(tǒng),提供容器運(yùn)行時(shí)所需的程序卖怜、庫屎开、資源、配置等文件马靠,另外還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(如匿名卷奄抽、環(huán)境變量、用戶等)甩鳄。
    鏡像是一個(gè)靜態(tài)的概念逞度,不包含任何動(dòng)態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會(huì)被改變妙啃。
  • 容器(Container)
    Docker的鏡像是用于生成容器的模板档泽,鏡像分層的俊戳,鏡像與容器的關(guān)系,就是面向?qū)ο缶幊讨蓄惻c對(duì)象的關(guān)系馆匿,我們定好每一個(gè)類抑胎,然后使用類創(chuàng)建對(duì)象,對(duì)應(yīng)到Docker的使用上渐北,則是構(gòu)建好每一個(gè)鏡像阿逃,然后使用鏡像創(chuàng)建我們需要的容器。
  • 倉庫(Repository)
    在前面的例子中赃蛛,我們使用兩種方式構(gòu)建鏡像恃锉,構(gòu)建完成之后,可以在本地運(yùn)行鏡像呕臂,生成容器破托,但如果在更多的服務(wù)器運(yùn)行鏡像呢?很明顯诵闭,這時(shí)候我們需要一個(gè)可以讓我們集中存儲(chǔ)和分發(fā)鏡像的服務(wù)炼团,就像Github可以讓我們自己存儲(chǔ)和分發(fā)代碼一樣。
    Docker Hub就是Docker提供用于存儲(chǔ)和分布鏡像的官方Docker Registry疏尿,也是默認(rèn)的Registry瘟芝,其網(wǎng)址為https://hub.docker.com,前面我們使用docker pull命令便從Docker Hub上拉取鏡像褥琐。

Docker Hub有很多官方或其他開發(fā)提供的高質(zhì)量鏡像供我們使用锌俱,當(dāng)然,如果要將我們自己構(gòu)建的鏡像上傳到Docker Hub上敌呈,我們需要在Docker Hub上注冊(cè)一個(gè)賬號(hào)贸宏,然后把自己在本地構(gòu)建的鏡像發(fā)送到Docker Hub的倉庫當(dāng)中,Docker Registry包含很多個(gè)倉庫磕洪,每個(gè)倉庫對(duì)應(yīng)多個(gè)標(biāo)簽吭练,不同標(biāo)簽對(duì)應(yīng)一個(gè)軟件的不同版本。

完成 Docker容器析显、鏡像和相關(guān)資源刪除干凈鲫咽,您可以執(zhí)行以下步驟:

  1. 停止并刪除所有容器
docker stop $(docker ps -a -q)

docker rm $(docker ps -a -q)

命令將停止并刪除所有運(yùn)行中和已停止的容器。請(qǐng)注意谷异,這可能會(huì)導(dǎo)致您丟失有關(guān)這些容器的數(shù)據(jù)分尸,因此請(qǐng)確保您不再需要這些容器。

  1. 刪除所有鏡像
docker rmi $(docker images -q)

這將刪除所有本地鏡像歹嘹。請(qǐng)注意箩绍,如果這些鏡像正在被容器使用,您可能需要先刪除相關(guān)的容器尺上。

3.清理系統(tǒng)

docker system prune -a

這將刪除未使用的數(shù)據(jù)材蛛,包括停止的容器圆到、懸掛任何容器引用的鏡像、掛起的構(gòu)建等仰税。您可以根據(jù)需要輪換地使用該命令构资。

4.刪除卷和網(wǎng)絡(luò)

docker volume prune

docker network prune

這將刪除任何使用卷和網(wǎng)絡(luò)的容器。

5.刪除特定的容器陨簇、鏡像、卷或網(wǎng)絡(luò)

如果您刪除特定的容器迹淌、鏡像河绽、卷或網(wǎng)絡(luò),您可以使用相應(yīng)的docker rm唉窃、docker rmi耙饰、docker volume rm和docker network rm命令

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市纹份,隨后出現(xiàn)的幾起案子苟跪,更是在濱河造成了極大的恐慌,老刑警劉巖蔓涧,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件件已,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡元暴,警方通過查閱死者的電腦和手機(jī)篷扩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茉盏,“玉大人鉴未,你說我怎么就攤上這事○蹋” “怎么了铜秆?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)讶迁。 經(jīng)常有香客問我连茧,道長(zhǎng),這世上最難降的妖魔是什么添瓷? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任梅屉,我火速辦了婚禮,結(jié)果婚禮上鳞贷,老公的妹妹穿的比我還像新娘坯汤。我一直安慰自己,他們只是感情好搀愧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布惰聂。 她就那樣靜靜地躺著疆偿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搓幌。 梳的紋絲不亂的頭發(fā)上杆故,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天丢习,我揣著相機(jī)與錄音撬码,去河邊找鬼。 笑死幽邓,一個(gè)胖子當(dāng)著我的面吹牛拐揭,可吹牛的內(nèi)容都是我干的撤蟆。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼堂污,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼家肯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起盟猖,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤讨衣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后式镐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體反镇,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年碟案,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了愿险。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡价说,死狀恐怖辆亏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鳖目,我是刑警寧澤扮叨,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站领迈,受9級(jí)特大地震影響彻磁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜狸捅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一衷蜓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尘喝,春花似錦磁浇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽无虚。三九已至,卻和暖如春衍锚,著一層夾襖步出監(jiān)牢的瞬間友题,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國打工戴质, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留度宦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓告匠,卻偏偏與公主長(zhǎng)得像斗埂,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凫海,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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