Docker系列之烹飪披薩(二)

前言

上一篇咱們講解了虛擬機和容器的區別,本節咱們來說講Docker中關於Dockerfile、鏡像、容器等基本概念。Docker是一個在容器內開發、部署、運行應用程序的平臺,Docker本質上是容器化的代名詞,容器對於提升軟件開發和數據科學的安全性,可重複性和可擴展性起到了重要做用,擁抱Docker已經是趨勢,讓咱們進入Docker課堂。html

烹飪材料

接下來咱們經過學習如何烹飪披薩,一探究竟Docker平臺各個基本概念,一說到吃,你們應該立刻就提起興趣了。python

Docker Container(容器)

啥是容器啊,搞的這麼高深,這麼玄乎的概念,因而乎 ,我終於找到容器是什麼了,以下:ubuntu

 

哈哈,這就是容器,仍是在某寶上截圖來的,不過此容器非彼容器,如上圖是一個真實存在的物理收納箱容器,看到如上真實存在的容器,咱們能想到這樣一個容器有什麼特色呢?安全

1.承載東西-這固然是最基本的啦,既然是收納箱,就是用來裝東西的,有些東西能夠放在收納箱內,也能夠放在收納箱外(這就比如在容器內能夠裝載應用程序及其依賴)學習

2.方便攜帶-有了收納箱咱們能夠隨處搬運,就像小孩的玩具同樣,能夠從家拿到學校,攜帶方便。(這就比如容器輕巧,能夠在任何地方運行)spa

3.接口訪問-收納箱上方有一個蓋蓋,咱們將其打開,能夠放入或取出物品(這就比如容器與外界有鏈接的機制,好比經過命令行進行數據交互)命令行

4.遠程獲取-製造商經過對應模具模板能夠製造出成千上萬個收納箱,而後將收納箱放到某寶或某東上,最終咱們在某寶或某東上購買這個收納箱(這就比如模具是鏡像,經過鏡像製做容器)htm

物理形式存在的收納箱容器從被製造出來的那一刻就被賦予了生命,既然被賦予了生命固然也就存在對應的生命週期,咱們可將收納箱的生命週期概括爲四個階段:孵化、閒置、使用、廢棄。萬事萬物一旦存在,不管是物理形式仍是虛擬形式都有其生命週期,容器也不例外,只不過容器由人爲操縱控制其生命週期直至其關閉。blog

 

經過以上引入生活實例物理收納箱容器的隱喻來對比虛擬化容器,得出虛擬化容器的特色,想必到此應該對容器有了一點點通透的瞭解。接口

 

Docker Image(鏡像) 

上述關於關於物理存在的收納箱容器是以某種實例而存在,雖然說容器是虛擬的,可是究竟是如何虛擬出來的呢?它是以何種生命形式而存在的呢?答案則是:鏡像孕育了容器,也就是說鏡像構造出了容器。那麼鏡像又是什麼呢?從語義層面理解,咱們可能認爲就是圖像,而圖像多是根據手機或者攝像機將拍攝範圍的所有內容映射到物理圖像上,可是事實狀況真的如此嗎?

顯然不是,鏡像其實就是一個模具或模板,對於收納箱的模板以下,咱們根據模板而刻畫出如上漂亮且精緻的收納箱容器。

如上所述,咱們根據鏡像刻畫出了容器,鏡像是不可變的主模板,用來抽取出徹底相同的容器,而鏡像包含應用程序所須要運行的Dockerfile、代碼、庫等,如此這些被徹底捆綁在一塊兒。

Dockerfile(鏡像說明書)

講完了鏡像,咱們又有疑惑了,鏡像又是怎麼來的呢?經過Dockerfile來建立,Dockerfile是一個文件,這個文件中包含了如何構建鏡像的說明,Dockerfile只是用來構建初始鏡像層的基本鏡像,咱們可將其看作是鏡像的說明書。根據Dockerfile中的使用說明,咱們能夠將附加層堆疊在基礎鏡像層的頂部。最後根據Dockerfile代碼,在其餘層的頂部堆疊薄的可寫層,每一層是如此的薄,堆疊可寫的過程就好似洋蔥的成長過程,多麼形象而生動,若是你願意一層一層,一層的剝開個人心,你會發現 你會訝異....哈哈。

Container Registry (鏡像倉儲)

若是咱們但願其餘人可以利用咱們的鏡像來建立容器,咱們能夠將鏡像傳送到容器註冊表中,Docker Hub是最大的默認註冊表位置。

烹飪披薩

關於披薩所須要的材料咱們都已配齊,接下來咱們試試來自制披薩,好很差吃沒關係,重要的是享受制做的過程。

第一步:咱們須要知道製做披薩的配方,這個配方比如Dockerfile,裏面包含如何製做出披薩的說明。

第二步:披薩有幾層,好比包含麪包層、奶酪層、醬汁層等等,由於配方說明咱們知道要作什麼,這是不可更改的計劃,這就比如咱們從底層首先構建出基本的鏡像如ubuntu,而後添加奶酪層等,這一層至關於咱們安裝外部庫,好比python,最後再刷上一層泰國甜辣醬,簡直是人間美味,這就至關於咱們已編寫好的應用程序代碼,最終就有了披薩的原型,也就造成了Docker Image(鏡像),

第三步:咱們作好了披薩,這個時候咱們須要將其放入烤箱中,烤箱就比如Docker平臺,當咱們將買回來的烤箱放在家裏,這個時候就比如將Docker安裝在計算機上同樣,當咱們扭動烤箱按鈕的那一刻,咱們就開始烹飪披薩,這就像咱們開始建立並啓動容器啦。

第四步:等待一小會,當披薩熟了,熟透了的披薩就比如Docker容器。

第五步:最終大功告成,咱們開始吃披薩,吃披薩就比如咱們在容器中使用應用程序同樣。

烹飪總結

本節咱們經過烹飪披薩講述了Docker平臺上基本概念,以及各個基本概念之間的關係,它們是如何關聯起來的,但願經過本文的講解,對於閱讀本文的童鞋能對概念有更深刻的理解,應該不會經過個人講解,越講越懵逼吧,哈哈。有了對基本概念的理解,後續陸續引入例子就一目瞭然啦,感謝閱讀,咱們下節再會。 

原文出處:https://www.cnblogs.com/CreateMyself/p/11317826.html

相關文章
相關標籤/搜索