×

docker是什么?Docker中的鏡像、容器、倉庫有什么關(guān)系?

分類:虛機資訊 編輯:虛機世界 瀏覽量:157
2021-04-06 14:47:15

  當站長朋友在進行建站時,一般都會選擇虛擬主機來作為建站空間,如果你購買虛擬主機數(shù)量比較多,在安裝網(wǎng)站程序時,由于不同空間的操作系統(tǒng)是不同的,有時會出現(xiàn)程序錯誤的情況。而想要批量給虛擬主機安裝程序又不出現(xiàn)錯誤,此時就需要使用docker。那么docker是什么?大家都清楚嗎?新網(wǎng)告訴大家docker就是一種輕量級的虛擬機,它可以把系統(tǒng)環(huán)境都模仿下來,然后在不同的服務器上將模仿的環(huán)境復制出來,這樣在安裝程序時,就無需擔心會出現(xiàn)錯誤的情況了。


  docker是什么?
  Docker是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windows機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
  一個完整的Docker有以下幾個部分組成:
  1、DockerClient客戶端;
  2、Docker Daemon守護進程;
  3、Docker Image鏡像;
  4、DockerContainer容器。
 
  docker是如何工作的?
  1、docker build
  當我們寫完dockerfile交給docker“編譯”時使用這個命令,那么client在接收到請求后轉(zhuǎn)發(fā)給docker daemon,接著docker daemon根據(jù)dockerfile創(chuàng)建出“可執(zhí)行程序”image。
  2、docker run
  有了“可執(zhí)行程序”image后就可以運行程序了,接下來使用命令docker run,docker daemon接收到該命令后找到具體的image,然后加載到內(nèi)存開始執(zhí)行,image執(zhí)行起來就是所謂的container。
  3、docker pull

  其實docker build和docker run是兩個最核心的命令,會用這兩個命令基本上docker就可以用起來了。


  Docker中的鏡像、容器、倉庫有什么關(guān)系?
  (1)Docker鏡像(image)
  鏡像是創(chuàng)建Docker容器的基礎(chǔ),Docker鏡像類似于虛擬機鏡像,可以把Docker鏡像理解成一個特殊的文件系統(tǒng),除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(shù)(如匿名卷、環(huán)境變量、用戶等)。鏡像不包含任何動態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會被改變(只讀)。
  Docker提供了一套十分簡單的機制來創(chuàng)建和更新現(xiàn)有的鏡像。用戶可以從網(wǎng)上下載一個已經(jīng)做好的應用鏡像,并通過命令直接使用??傊?,應用運行是需要環(huán)境的,而鏡像就是來提供這種環(huán)境。
  例如:一個鏡像可以完全包含了Ubuntu操作系統(tǒng)環(huán)境,可以把它稱作一個Ubuntu鏡像。鏡像也可以安裝了Apache應用程序(或其他軟件),可以把它稱為一個Apache鏡像。
  (2)Docker容器(Container)
  鏡像(Image)和容器(Container)的關(guān)系,就像是面向?qū)ο蟪绦蛟O(shè)計中的類和實例一樣,鏡像是靜態(tài)的定義,容器是鏡像運行時的實體。容器可以被創(chuàng)建、啟動、停止、刪除、暫停等。并且這些容器都是相互隔離、互不可見的。
 
  docker是什么

  Docker容器(Container)類似于一個輕量級的沙箱子(因為Docker是基于Linux內(nèi)核的虛擬技術(shù),所以消耗資源十分少),可以把每個容器看作一個簡易版的Linux系統(tǒng)環(huán)境(包括了root用戶權(quán)限、進程空間、用戶空間和網(wǎng)絡(luò)空間),以及與運行在其中的應用程序打包而成的應用盒子。Docker利用容器來運行和隔離應用。容器內(nèi)的進程是運行在一個隔離的環(huán)境里,使用起來,就好像是在一個獨立于宿主的系統(tǒng)下操作一樣。這種特性使得容器封裝的應用比直接在宿主運行更加安全。


  鏡像自身是只讀的。容器從鏡像啟動的時候,Docker會在鏡像的最上層創(chuàng)建一個可寫層,鏡像本身將保持不變。就像用ISO裝系統(tǒng)之后,ISO并沒有什么變化一樣。
  (3)Docker倉庫(Repository)
  Docker倉庫(Repository)類似于代碼倉庫,是Docker集中存放鏡像文件的場所。每個倉庫集中存放某一類鏡像,往往包括多個鏡像文件,通過不同的標簽(tag)來進行區(qū)分。例如存放Ubuntu操作系統(tǒng)鏡像的倉庫,稱為Ubuntu倉庫,其中可能包括14.04,12.04等不同版本的鏡像。但是,如果需要在其它服務器上使用這個鏡像,我們就需要一個集中的存儲、分發(fā)鏡像的服務,Docker Registry就是這樣的服務。理解這個關(guān)系就是:一個Docker Registry中可以包含多個倉庫(Repository);每個倉庫可以包含多個標簽(Tag);每個標簽對應一個鏡像。
  根據(jù)存儲的鏡像公開分享與否,Docker倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。
  目前,最大的公開倉庫是Docker Hub,存放了數(shù)量龐大的鏡像供用戶下載。國內(nèi)的公開倉庫包括Docker Pool等,可以提供穩(wěn)定的國內(nèi)訪問。如果用戶不希望公開分享自己的鏡像文件,Docker也支持用戶在本地網(wǎng)絡(luò)內(nèi)創(chuàng)建一個只能自己訪問的私有倉庫。

  當用戶創(chuàng)建了自己的鏡像之后就可以使用push將它上傳到指定的公有或則私有倉庫。這樣用戶下次在另一臺機器上使用該鏡像時,只需將其從倉庫pull下來就可以了。


  上文已經(jīng)給大家介紹了docker是什么,現(xiàn)在的docker就像是獨立的操作系統(tǒng),可以滿足大家批量在不同的操作系統(tǒng)中安裝程序,而且現(xiàn)在的docker技術(shù)已經(jīng)十分成熟,很多公司或企業(yè)都在使用docker。如果你對docker還有不明白的地方,都可以到新網(wǎng)上找相關(guān)的技術(shù)人員來咨詢一下具體的操作方法。


聲明:免責聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認相關(guān)法律責任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)

送郵件至:operations@xinnet.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時

需注明出處:新網(wǎng)idc知識百科

免費咨詢獲取折扣

Loading