Docker教程-简介
最近工作中需要頻繁使用到docker,趁著最近比較閑,就初步學(xué)習(xí)一下,并將學(xué)習(xí)內(nèi)容記錄為博客,由于這部分知識(shí)對(duì)我來(lái)說(shuō)也比較陌生,文中若有疏漏,歡迎評(píng)論指正。
簡(jiǎn)介
本文主要包括Docker的介紹、應(yīng)用場(chǎng)景、優(yōu)勢(shì)以及基礎(chǔ)架構(gòu)。Docker其實(shí)就是一個(gè)虛擬化技術(shù),將應(yīng)用程序和應(yīng)用程序需要的依賴環(huán)境一起打包,讓部署無(wú)需擔(dān)心環(huán)境問(wèn)題。
介紹
Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,基于Go語(yǔ)言并使用Apache2.0協(xié)議開(kāi)源。它可以讓開(kāi)發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口,且容器性能開(kāi)銷極低。Docker自從17.03版本之后分為社區(qū)版(CE)和企業(yè)版(EE),對(duì)于個(gè)人使用社區(qū)版足夠了。
應(yīng)用場(chǎng)景
- Web應(yīng)用的自動(dòng)化打包和發(fā)布。
- 自動(dòng)化測(cè)試和持續(xù)集成和發(fā)布。
- 其他容器技術(shù)場(chǎng)景。
優(yōu)勢(shì)
Docker是一個(gè)用于開(kāi)發(fā)、交付和運(yùn)行應(yīng)用程序的開(kāi)放平臺(tái)。Docker允許用戶將應(yīng)用程序與基礎(chǔ)架構(gòu)分開(kāi),從而可以快速交付軟件產(chǎn)品。借助Docker這一工具,用戶使用與管理應(yīng)用程序相同的方式來(lái)管理基礎(chǔ)架構(gòu)。通過(guò)利用Docker的方法來(lái)實(shí)現(xiàn)快速交付、測(cè)試和部署項(xiàng)目代碼,從而大大減少編碼和生產(chǎn)環(huán)境中運(yùn)行代碼之間的延遲。
快速交付
Docker允許開(kāi)發(fā)人員使用提供的應(yīng)用程序或服務(wù)的本地容器在標(biāo)準(zhǔn)化環(huán)境中工作,從而縮短開(kāi)發(fā)周期。它非常適合持續(xù)集成和持續(xù)交付的工作流程,主要有如下的示例場(chǎng)景。
- 開(kāi)發(fā)者本地編碼,使用容器與右工作關(guān)系的開(kāi)發(fā)者共享工作結(jié)果。
- 開(kāi)發(fā)者使用Docker將應(yīng)用程序推送到測(cè)試環(huán)境中,執(zhí)行相關(guān)的測(cè)試工作。若有錯(cuò)誤,可以在開(kāi)發(fā)環(huán)境中進(jìn)行修復(fù),然后重新推送到測(cè)試環(huán)境。
- 開(kāi)發(fā)者測(cè)試完成,將修補(bǔ)程序推送給生產(chǎn)環(huán)境,類似推送更新的鏡像一樣,非常方便。
響應(yīng)式部署和擴(kuò)展
Docker是基于容器的平臺(tái),允許高度可移植的工作負(fù)載。Docker容器可以在開(kāi)發(fā)中機(jī)器上、生產(chǎn)環(huán)境機(jī)器上、云主機(jī)上,只要有Linux環(huán)境,都可以部署運(yùn)行。它的可移植和輕量的特點(diǎn),允許開(kāi)發(fā)者輕松完成動(dòng)態(tài)管理的工作負(fù)擔(dān),并根據(jù)需求,實(shí)時(shí)擴(kuò)展或削減應(yīng)用程序和服務(wù)。
同硬件多負(fù)載
Docker是輕量且高效的,它為基于虛擬機(jī)管理的方案提供了一種可行的、經(jīng)濟(jì)的、高效的替代,可以充分利用計(jì)算資源。它適合于高密度的中小型部署,不太適合大型部署。
架構(gòu)
Docker包括三個(gè)基本概念:
- 鏡像(Image),包含一整套完整的文件系統(tǒng),如官方鏡像ubuntu:16.04就包含完整的Ubuntu16.04最小的root文件系統(tǒng)。
- 容器(Container),它與鏡像的關(guān)系類似面向?qū)ο笾械膶?duì)象和類,鏡像是靜態(tài)的一套定義,容器則是它運(yùn)行時(shí)的實(shí)例,容器可以被創(chuàng)建、啟動(dòng)、停止、刪除和暫停等等操作。
- 倉(cāng)庫(kù)(Repository),它是一個(gè)代碼中心,存放鏡像。
Docker使用客戶端-服務(wù)器架構(gòu)模式(即CS架構(gòu)),使用遠(yuǎn)程API來(lái)管理和創(chuàng)建Docker容器。示意圖如下,圖片來(lái)自網(wǎng)絡(luò)。
Docker客戶端(Client)通過(guò)命令行等工具與Docker主機(jī)(Host)中的Docker守護(hù)進(jìn)程通信,Docker主機(jī)是一個(gè)執(zhí)行Docker守護(hù)進(jìn)程和容器的物理或者虛擬的機(jī)器。而Docker倉(cāng)庫(kù)用來(lái)保存鏡像,Docker Hub提供龐大的鏡像集合供使用,通常,一個(gè)Docker倉(cāng)庫(kù)包含多個(gè)倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)包含多個(gè)標(biāo)簽,每個(gè)標(biāo)簽對(duì)于一個(gè)具體的鏡像。一個(gè)倉(cāng)庫(kù)會(huì)包含一個(gè)軟件不同版本的鏡像,標(biāo)簽用于區(qū)分不同的版本,可以通過(guò)倉(cāng)庫(kù)名:標(biāo)簽名的方式制定鏡像,不指定則默認(rèn)最新版本。
補(bǔ)充說(shuō)明
本文主要介紹了Docker的一些基本知識(shí)和比較簡(jiǎn)單的架構(gòu),具體Docker的安裝和使用會(huì)在下一篇博客中提到。
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的Docker教程-简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PyTorch-常用代码
- 下一篇: Docker教程-安装