關于docker原理的一些理解

首先一聽到docker那肯定就要知道,docker是什么。


docker圖標

? ? ? 針對于docker是什么 ,干什么用,那些官方性的話我就不說了,百度一下一大片,直接就用他的logo做介紹,首先需要知道,docker現(xiàn)在普遍的用于linux,windows,如果把linux,windows比作是大海的話,那docker就是那條鯨魚,拿有的人就納悶了,那他背上的集裝箱是幾個意思???

那好好的看一下圖標,你品,你仔細品,你細細的品,docker他的核心是:鏡像,容器,倉庫,而這個集裝箱他就是一個容器。

? ? 那這個容器到底是什么呢?針對于容器的概念呢,有點抽象,舉個簡單的例子就是:你吃飯用的碗,里面有飯,有排骨,有荷包蛋。你這個碗就是一個容器。說白了就是用來存放東西的一個東東叫做容器。那docker里面的這個容器到底放的是什么呢?

docker里面的容器是用來存放各種服務,比如:php,mysql,nginx,redis,mongo,swoole等等。

說到這個容器,大致應該就明白docker是干嘛的吧?想象以下,如果那些集裝箱里面裝了各種服務,當另一臺服務器是全新的時候,但是又要配置和docker里面相同的環(huán)境,那我只要把這些集裝箱里面的東西拿出來拷貝一份。到另外一個服務器上面去下載一個docker然后把這拷貝過來的東西放到集裝箱里面,那不就是一樣的環(huán)境了么?docker的一個用處

接下來說到鏡像,鏡像他是一個聯(lián)合文件系統(tǒng),怎么理解呢?就是好比一個雞蛋殼一樣。舉個簡單的例子。我們下載一個php鏡像,docker pull?php


會發(fā)現(xiàn),我pull了一個php,居然給我下載了那么多東西。那這些是什么呢?(我也不知道)

但是我知道的是,這些東西肯定是運行PHP,所必需的東西,下面用一個圖來解釋


從圖中可以看到,下載一個PHP所需要下載的東西是一層一層的往外套,就好比洋蔥一樣,這就是鏡像的一個原理,具體的聯(lián)合文件系統(tǒng)的解釋,就不做官方介紹了。


說到鏡像這塊,在說一說,鏡像和容器的關系,如果把鏡像比作一個類,那容器就是實例化的這個類,上面圖片里面最里面的是一個kernel,他就是一個精簡版的linux,那需要怎么證明呢?舉個簡單的例子。

我們運行一個容器,然后進入到這個容器里面。

看到?jīng)]有?居然和宿主機的linux一毛一樣,在回想一下,一個服務需要啟動,是不是需要一個運行環(huán)境,那最基礎的運行環(huán)境是什么?linux咯

所以kernel就是一個linux的內(nèi)核,至于他為什么沒有Linux那么大呢?因為這是一個精簡版的,沒有硬件和雜七八雜的東西,只有簡單基礎的一個環(huán)境。

至于倉庫就不多介紹了,就是一個存放鏡像的一個地方,舉個簡單的例子,github就是這樣一個倉庫。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容