乙個比喻講明Docker是什麼

2022-03-12 12:05:45 字數 1544 閱讀 6473

之前一直聽運維的同事講docker,說弄個docker映象,打包些應用什麼的,還有時不時地在一些帖子裡見到過關於docker的三言兩語,然後自己也自我感覺良好的把它總結歸納了一下認為:「往docker裡面打包一大堆的應用,然後我就可以拿著這個docker,到處執行了」。就因為這,還鬧出過笑話,所以啊,是時候了解一下這無所不能的docker到底是個什麼鬼;一番折騰,終於弄明白了什麼是docker;其中有乙個帖子個人感覺非常有趣,所以擷取了其中一段,特此分享,內容大致如下:

docker本身並不是容器,它是建立容器的工具,是應用容器引擎。

想要搞懂docker,其實看它的兩句口號就行。第一句,是「build, ship and run」。

也就是,「搭建、傳送、執行」,三板斧。舉個例子:我來到一片空地,想建個房子,於是我搬石頭、砍木頭、畫圖紙,一頓操作,終於把這個房子蓋好了。

結果,我住了一段時間,想搬到另一片空地去。這時候,按以往的辦法,我只能再次搬石頭、砍木頭、畫圖紙、蓋房子。但是,跑來乙個老巫婆,教會我一種魔法。這種魔法,可以把我蓋好的房子複製乙份,做成「映象」,放在我的揹包裡。

等我到了另一片空地,就用這個「映象」,複製一套房子,擺在那邊,拎包入住。

怎麼樣?是不是很神奇?所以,docker的第二句口號就是:「build once,run anywhere」,搭建一次,到處能用。

docker技術的三大核心概念,分別是:

說白了,這個docker映象,是乙個特殊的檔案系統。它除了提供容器執行時所需的程式、庫、資源、配置等檔案外,還包含了一些為執行時準備的一些配置引數(例如環境變數)。映象不包含任何動態資料,其內容在構建之後也不會被改變。也就是說,每次變出房子,房子是一樣的,但生活用品之類的,都是不管的。誰住誰負責添置。每乙個映象可以變出一種房子。那麼,我可以有多個映象呀!也就是說,我蓋了乙個歐式別墅,生成了映象。另乙個哥們可能蓋了乙個中國四合院,也生成了映象。還有哥們,蓋了乙個非洲茅草屋,也生成了映象。。。這麼一來,我們可以交換映象,你用我的,我用你的,豈不是很爽?

於是乎,就變成了乙個大的公共倉庫。負責對docker映象進行管理的,是docker registry服務(類似倉庫管理員)。不是任何人建的任何映象都是合法的。萬一有人蓋了乙個有問題的房子呢?所以,docker registry服務對映象的管理是非常嚴格的。最常使用的registry公開服務,是官方的docker hub,這也是預設的 registry,並擁有大量的高質量的官方映象。

url指的是什麼 一文講明白URL是個啥?

url http協議 網域名稱 路徑 查詢引數 錨點。http協議 http協議是網際網路基礎協議,是基於 tcp ip 協議的應用層協議。它不涉及資料報傳輸,主要規定了客戶端和伺服器之間的通訊格式,預設使用80埠。網域名稱 是由一串用點分隔的名字組成的internet上某一台計算機或計算機組的名稱...

雲計算的乙個比喻

雲計算的定義和基本特徵大家談的都比較多了,但是雲計算的發展和演進,雲計算的一些基本特徵還需要用乙個比喻來進一步細說下。從去年想到這個比喻到現在,比喻本身也在不斷完善和補充中。在社會經濟不發達的時候,乙個農戶想吃雞蛋,所以他自己養了乙隻雞,那麼他為了自己養這只雞,就需要給雞建乙個簡單的雞窩,還需要平時...

乙個關於敏捷的比喻

前幾天看到乙個關於敏捷的比喻,覺得很好。敏捷就像是減負前進,去掉那些對你幫助不大的東西,用你的經驗和能力代替這些東西的功能,減輕負負擔,輕裝前進。對於經驗不多的人來說,你需要謹慎,很可能你拿掉的東西正好是你需要的,不要看別人如何如何,一定要根據自己的情況調整。tdd,ci,pp,standup 用還...