国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Docker】Docker比虛擬機快的原因、ubuntu容器、鏡像的分層概念和私有庫的詳細講解

這篇具有很好參考價值的文章主要介紹了【Docker】Docker比虛擬機快的原因、ubuntu容器、鏡像的分層概念和私有庫的詳細講解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??歡迎來到本文??
??個人簡介:陳童學(xué)哦,目前學(xué)習(xí)C/C++、算法、Python、Java等方向,一個正在慢慢前行的普通人。
??系列專欄:陳童學(xué)的日記
??其他專欄:C++STL,感興趣的小伙伴可以看看。
??希望各位→點贊?? + 收藏?? + 留言?? ?
??萬物從心起,心動則萬物動???♂?

【Docker】Docker比虛擬機快的原因、ubuntu容器、鏡像的分層概念和私有庫的詳細講解,陳童學(xué)的日記,docker,ubuntu,容器,云原生,linux

前言:Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux系統(tǒng) 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

1.Docker比虛擬機快的原因

眾所周知,Docker比虛擬機快,那么為什么呢?憑啥Docker比虛擬機快呢?因為它更帥嗎?任何主流的東西都是有它的優(yōu)勢的。

Docker比虛擬機快的主要原因有以下幾點:

  • 1.資源利用率高:Docker容器共享宿主機的操作系統(tǒng)內(nèi)核,不需要像虛擬機一樣每個實例都運行完整的操作系統(tǒng)。這使得Docker容器在啟動和停止時更加輕量級和快速。

  • 2.快速啟動時間:Docker容器的啟動時間通常只需要幾秒鐘,而虛擬機需要幾分鐘甚至更長時間。這是因為Docker容器不需要啟動完整的操作系統(tǒng),只需加載應(yīng)用程序所需的文件和依賴項。

  • 3.資源隔離:虛擬機在運行時需要為每個實例分配一定的CPU、內(nèi)存和磁盤資源,而Docker容器可以共享宿主機的資源。這種資源隔離方式使得Docker容器在性能方面更加高效。

  • 4.輕量級:Docker容器的鏡像大小相對較小,只包含應(yīng)用程序和其依賴項,而虛擬機鏡像包含完整的操作系統(tǒng)。這使得Docker容器在傳輸和存儲時更加高效。

【Docker】Docker比虛擬機快的原因、ubuntu容器、鏡像的分層概念和私有庫的詳細講解,陳童學(xué)的日記,docker,ubuntu,容器,云原生,linux

2.Dockers中關(guān)于ubuntu容器的簡單說明

??Docker是一種容器化平臺,它允許用戶將應(yīng)用程序及其依賴打包為一個獨立的容器,提供了一種輕量級、可移植、可復(fù)制的方式來部署和運行應(yīng)用程序。Ubuntu容器是指在Docker中基于Ubuntu操作系統(tǒng)鏡像創(chuàng)建的容器。它是一個虛擬化的環(huán)境,可以運行Ubuntu操作系統(tǒng)及其相關(guān)的應(yīng)用程序。

在Docker中創(chuàng)建一個Ubuntu容器可以通過以下步驟完成:

  • 1.首先,確保你已經(jīng)安裝好Docker。如果沒有安裝,請按照Docker官方文檔的指引進行安裝。
  • 2.打開終端或命令提示符,運行以下命令來拉取Ubuntu鏡像:
docker pull ubuntu
  • 3.等待鏡像下載完成后,可以運行以下命令來創(chuàng)建并啟動一個Ubuntu容器:
docker run -it --name my_ubuntu_container ubuntu

這個命令會創(chuàng)建一個新的Ubuntu容器,并將終端連接到容器的交互式會話中。my_ubuntu_container是你給容器起的一個名稱。

【Docker】Docker比虛擬機快的原因、ubuntu容器、鏡像的分層概念和私有庫的詳細講解,陳童學(xué)的日記,docker,ubuntu,容器,云原生,linux

3.Docker中鏡像的分層概念

??在Docker中,鏡像是構(gòu)建和運行容器的基礎(chǔ)。鏡像是由一系列只讀層(layers)組成的。每個層都包含了文件系統(tǒng)中的一部分,這些層會根據(jù)需要進行合并和重用,以創(chuàng)建最終的鏡像。

鏡像分層的概念有以下幾個關(guān)鍵點:

  • 1.分層結(jié)構(gòu):Docker鏡像是由多個只讀層組成的,每個層都可以看作是文件系統(tǒng)中的一個快照。每個層都包含了增量的文件和目錄變化,以及相應(yīng)的元數(shù)據(jù)信息。這種分層結(jié)構(gòu)使得鏡像的構(gòu)建和分發(fā)更加高效。

  • 2.基礎(chǔ)鏡像:鏡像分層的最底層是一個基礎(chǔ)鏡像,它通常包含了操作系統(tǒng)的核心組件和基本工具?;A(chǔ)鏡像可以是官方提供的如Ubuntu、CentOS等,也可以是自定義的。

  • 3.可寫層:在基礎(chǔ)鏡像之上,可以有任意數(shù)量的可寫層??蓪憣釉试S在容器中進行修改和更新操作。當容器啟動時,可寫層會與只讀層一起形成容器的文件系統(tǒng)視圖。

  • 4.共享和復(fù)用:由于鏡像分層的機制,多個鏡像可以共享相同的只讀層,從而節(jié)省存儲空間。當多個鏡像使用相同的基礎(chǔ)鏡像時,它們可以共享相同的只讀層,只需要額外存儲各自的可寫層。

  • 5.構(gòu)建和發(fā)布:在構(gòu)建鏡像時,Docker會根據(jù)Dockerfile中的指令逐層構(gòu)建鏡像。每個指令都會創(chuàng)建一個新的只讀層,并根據(jù)需要將其與之前的層進行合并。在發(fā)布鏡像時,只需傳輸增量的層數(shù)據(jù),而不需要傳輸整個鏡像,這也使得鏡像的分發(fā)更加高效。

3.1Docker中的UnionFS聯(lián)合文件系統(tǒng)

??Docker中的聯(lián)合文件系統(tǒng)是一種分層、輕量級并且高性能的文件系統(tǒng)技術(shù),它支持對文件系統(tǒng)的修改作為一次提交來一層層的疊加,允許在容器中使用多個文件系統(tǒng)鏡像,并將它們合并成一個單一的可讀寫的文件系統(tǒng)。這種技術(shù)稱為聯(lián)合文件系統(tǒng),因為它通過在不同的文件系統(tǒng)鏡像之間建立聯(lián)合來實現(xiàn)。

??在Docker中,每個鏡像都有一個基礎(chǔ)鏡像,所有的更改和添加都是在該基礎(chǔ)鏡像上進行的。當創(chuàng)建一個容器時,Docker會在基礎(chǔ)鏡像之上創(chuàng)建一個可寫層。這個可寫層允許在容器中對文件進行更改和添加,而不會影響到基礎(chǔ)鏡像。

??當容器啟動時,Docker會將所有的鏡像層以及可寫層聯(lián)合掛載到一個單一的文件系統(tǒng)中。這樣,容器就可以訪問并操作這個聯(lián)合文件系統(tǒng)中的所有文件。當對文件進行修改或添加時,Docker會在可寫層中創(chuàng)建新的文件或修改已有的文件,而不會改變基礎(chǔ)鏡像中的文件。

??聯(lián)合文件系統(tǒng)的好處是它可以節(jié)省存儲空間。因為每個容器都共享基礎(chǔ)鏡像的只讀部分。

【Docker】Docker比虛擬機快的原因、ubuntu容器、鏡像的分層概念和私有庫的詳細講解,陳童學(xué)的日記,docker,ubuntu,容器,云原生,linux

3.2Docker中的鏡像加載原理

??在Docker中,鏡像是用于運行容器的文件系統(tǒng)。鏡像加載是指將鏡像從Docker倉庫或本地緩存加載到本地系統(tǒng),以供后續(xù)創(chuàng)建和運行容器。

鏡像加載的過程大致可以分為以下幾個步驟:

  • 1.鏡像下載:如果鏡像不在本地緩存中,Docker會從指定的倉庫中下載鏡像文件。默認情況下,Docker會從Docker Hub下載公共鏡像,也可以通過配置使用其他倉庫。

  • 2.鏡像分層:鏡像文件實際上由多個分層組成,每個分層都包含文件系統(tǒng)的一部分。Docker加載鏡像時,會按照分層的順序逐個加載,并將它們合并成一個單一的文件系統(tǒng)。

  • 3.分層緩存:Docker會根據(jù)鏡像的分層信息進行緩存,以提高后續(xù)加載相同鏡像時的速度。如果多個鏡像共享相同的分層,只需要下載一次,并在本地緩存中進行復(fù)用。

  • 4.容器創(chuàng)建:一旦鏡像加載完成,就可以使用該鏡像創(chuàng)建容器。容器是鏡像的一個實例化對象,它包含一個獨立的文件系統(tǒng)和運行時環(huán)境。
    【Docker】Docker比虛擬機快的原因、ubuntu容器、鏡像的分層概念和私有庫的詳細講解,陳童學(xué)的日記,docker,ubuntu,容器,云原生,linux

4.Docker的私有庫簡介

??私有庫是Docker中用于存儲和管理鏡像的倉庫,它可以用于存儲自己創(chuàng)建的鏡像,以及從公共倉庫拉取下來的鏡像。在本地搭建私有庫可以提供更高的安全性和更好的性能。搭建私有庫可以使用Docker官方提供的Registry鏡像,也可以使用第三方工具,如Harbor、Nexus等。
【Docker】Docker比虛擬機快的原因、ubuntu容器、鏡像的分層概念和私有庫的詳細講解,陳童學(xué)的日記,docker,ubuntu,容器,云原生,linux

下面以Docker官方的Registry為例進行講解。

  • 1.下載Registry鏡像:
docker pull registry
  • 2.運行Registry容器:
docker run -d -p 5000:5000 --restart=always --name registry registry

這里將容器的5000端口映射到宿主機的5000端口,方便訪問私有庫。

  • 3.配置Docker客戶端:
    編輯Docker配置文件/etc/docker/daemon.json,添加以下內(nèi)容:
{
  "insecure-registries": ["your-registry-domain:5000"]
}

這里將your-registry-domain替換為私有庫的域名或IP地址。

  • 4.推送鏡像到私有庫:
    首先,為鏡像添加標簽,使其與私有庫的地址關(guān)聯(lián):
docker tag your-image your-registry-domain:5000/your-image

然后,推送鏡像到私有庫:

docker push your-registry-domain:5000/your-image

這里將your-imageyour-registry-domain替換為實際的鏡像名稱和私有庫地址。

  • 5.從私有庫拉取鏡像:
docker pull your-registry-domain:5000/your-image

這里將your-imageyour-registry-domain替換為實際的鏡像名稱和私有庫地址。

以上就是在Docker中搭建私有庫的詳細步驟啦。通過私有庫,你可以方便地管理和分享自己的鏡像,同時也可以控制訪問權(quán)限。

如果本文對大家有所幫助的話,還望各位能給我點贊、收藏并評論一下,感謝各位???。?! 另如果大家有什么疑問或者建議的話,歡迎評論區(qū)留言。

拜拜ヾ(?ω?`)o文章來源地址http://www.zghlxwxcb.cn/news/detail-621885.html

到了這里,關(guān)于【Docker】Docker比虛擬機快的原因、ubuntu容器、鏡像的分層概念和私有庫的詳細講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包