日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker系列之烹饪披萨(二)

發(fā)布時(shí)間:2023/12/4 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker系列之烹饪披萨(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上一篇我們講解了虛擬機(jī)和容器的區(qū)別,本節(jié)我們來講講Docker中關(guān)于Dockerfile、鏡像、容器等基本概念。Docker是一個(gè)在容器內(nèi)開發(fā)、部署、運(yùn)行應(yīng)用程序的平臺(tái),Docker本質(zhì)上是容器化的代名詞,容器對(duì)于提高軟件開發(fā)和數(shù)據(jù)科學(xué)的安全性,可重復(fù)性和可擴(kuò)展性起到了重要作用,擁抱Docker已是趨勢(shì),讓我們進(jìn)入Docker課堂。

烹飪材料

接下來我們通過學(xué)習(xí)如何烹飪披薩,一探究竟Docker平臺(tái)各個(gè)基本概念,一說到吃,大家應(yīng)該馬上就提起興趣了。

Docker Container(容器)


啥是容器啊,搞的這么高深,這么玄乎的概念,于是乎 ,我終于找到容器是什么了,如下:哈哈,這就是容器,還是在某寶上截圖來的,不過此容器非彼容器,如上圖是一個(gè)真實(shí)存在的物理收納箱容器,看到如上真實(shí)存在的容器,我們能想到這樣一個(gè)容器有什么特點(diǎn)呢?
1.承載東西-這當(dāng)然是最基本的啦,既然是收納箱,就是用來裝東西的,有些東西可以放在收納箱內(nèi),也可以放在收納箱外(這就好比在容器內(nèi)可以裝載應(yīng)用程序及其依賴)2.方便攜帶-有了收納箱我們可以隨處搬運(yùn),就像小孩的玩具一樣,可以從家拿到學(xué)校,攜帶方便。(這就好比容器輕巧,可以在任何地方運(yùn)行)3.接口訪問-收納箱上方有一個(gè)蓋蓋,我們將其打開,可以放入或取出物品(這就好比容器與外界有連接的機(jī)制,比如通過命令行進(jìn)行數(shù)據(jù)交互)4.遠(yuǎn)程獲取-制造商通過對(duì)應(yīng)模具模板可以制造出成千上萬個(gè)收納箱,然后將收納箱放到某寶或某東上,最終我們?cè)谀硨毣蚰硸|上購買這個(gè)收納箱(這就好比模具是鏡像,通過鏡像制作容器)
物理形式存在的收納箱容器從被制造出來的那一刻就被賦予了生命,既然被賦予了生命當(dāng)然也就存在對(duì)應(yīng)的生命周期,我們可將收納箱的生命周期歸納為四個(gè)階段:孵化、閑置、使用、廢棄。萬事萬物一旦存在,無論是物理形式還是虛擬形式都有其生命周期,容器也不例外,只不過容器由人為操縱控制其生命周期直至其關(guān)閉。?通過以上引入生活實(shí)例物理收納箱容器的隱喻來對(duì)比虛擬化容器,得出虛擬化容器的特點(diǎn),想必到此應(yīng)該對(duì)容器有了一點(diǎn)點(diǎn)通透的了解。

Docker Image(鏡像)


上述關(guān)于關(guān)于物理存在的收納箱容器是以某種實(shí)例而存在,雖說容器是虛擬的,但是到底是如何虛擬出來的呢?它是以何種生命形式而存在的呢?答案則是:鏡像孕育了容器,也就是說鏡像構(gòu)造出了容器。那么鏡像又是什么呢?從語義層面理解,我們可能認(rèn)為就是圖像,而圖像可能是根據(jù)手機(jī)或者攝像機(jī)將拍攝范圍的全部?jī)?nèi)容映射到物理圖像上,但是事實(shí)情況真的如此嗎?顯然不是,鏡像其實(shí)就是一個(gè)模具或模板,對(duì)于收納箱的模板如下,我們根據(jù)模板而刻畫出如上漂亮且精致的收納箱容器。


如上所述,我們根據(jù)鏡像刻畫出了容器,鏡像是不可變的主模板,用來抽取出完全相同的容器,而鏡像包含應(yīng)用程序所需要運(yùn)行的Dockerfile、代碼、庫等,如此這些被完全捆綁在一起。

Dockerfile(鏡像說明書)


講完了鏡像,我們又有疑惑了,鏡像又是怎么來的呢?通過Dockerfile來創(chuàng)建,Dockerfile是一個(gè)文件,這個(gè)文件中包含了如何構(gòu)建鏡像的說明,Dockerfile只是用來構(gòu)建初始鏡像層的基本鏡像,我們可將其看做是鏡像的說明書。根據(jù)Dockerfile中的使用說明,我們可以將附加層堆疊在基礎(chǔ)鏡像層的頂部。最后根據(jù)Dockerfile代碼,在其他層的頂部堆疊薄的可寫層,每一層是如此的薄,堆疊可寫的過程就好似洋蔥的成長(zhǎng)過程,多么形象而生動(dòng),如果你愿意一層一層,一層的剝開我的心,你會(huì)發(fā)現(xiàn) 你會(huì)訝異....哈哈。


?Container Registry


如果我們希望其他人能夠利用我們的鏡像來創(chuàng)建容器,我們可以將鏡像傳送到容器注冊(cè)表中,Docker Hub是最大的默認(rèn)注冊(cè)表位置。

烹飪披薩

關(guān)于披薩所需要的材料我們都已配齊,接下來我們?cè)囋噥碜灾婆_,好不好吃不要緊,重要的是享受制作的過程。


第一步:我們需要知道制作披薩的配方,這個(gè)配方好比Dockerfile,里面包含如何制作出披薩的說明。
第二步:披薩有幾層,比如包含面包層、奶酪層、醬汁層等等,因?yàn)榕浞秸f明我們知道要做什么,這是不可更改的計(jì)劃,這就好比我們從底層首先構(gòu)建出基本的鏡像如ubuntu,然后添加奶酪層等,這一層相當(dāng)于我們安裝外部庫,比如python,最后再刷上一層泰國甜辣醬,簡(jiǎn)直是人間美味,這就相當(dāng)于我們已編寫好的應(yīng)用程序代碼,最終就有了披薩的原型,也就形成了Docker Image(鏡像),
第三步:我們做好了披薩,這個(gè)時(shí)候我們需要將其放入烤箱中,烤箱就好比Docker平臺(tái),當(dāng)我們將買回來的烤箱放在家里,這個(gè)時(shí)候就好比將Docker安裝在計(jì)算機(jī)上一樣,當(dāng)我們扭動(dòng)烤箱按鈕的那一刻,我們就開始烹飪披薩,這就像我們開始創(chuàng)建并啟動(dòng)容器啦。
第四步:等待一小會(huì),當(dāng)披薩熟了,熟透了的披薩就好比Docker容器。
第五步:最終大功告成,我們開始吃披薩,吃披薩就好比我們?cè)谌萜髦惺褂脩?yīng)用程序一樣。
本節(jié)我們通過烹飪披薩講述了Docker平臺(tái)上基本概念,以及各個(gè)基本概念之間的關(guān)系,它們是如何關(guān)聯(lián)起來的,希望通過本文的講解,對(duì)于閱讀本文的童鞋能對(duì)概念有更深入的理解,應(yīng)該不會(huì)通過我的講解,越講越懵逼吧,哈哈。有了對(duì)基本概念的理解,后續(xù)陸續(xù)引入例子就一目了然啦,感謝閱讀,我們下節(jié)再會(huì)。?

熱賣課程

總結(jié)

以上是生活随笔為你收集整理的Docker系列之烹饪披萨(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。