雲端計算教程之容器介紹

好程式設計師發表於2020-05-29

  好程式設計師雲端計算培訓分享之 容器介紹 容器其實是一種沙盒技術。沙盒就是能夠像一個集裝箱一樣,把你的應用" " 起來的技術。這樣,應用與應用之間,就因為有了邊界而不至於相互干擾;而被裝進集裝箱的應用,也可以被方便地搬來搬去。

問題:容器的本質到底是什麼?

容器的本質是程式。容器映象就是這個系統裡的".exe"安裝包.

.iso映象檔案--->(linux/wind/) docker-----下載images------run------>docker容器-----打包----images---放到其他機器-----run映象------容器

docker ---下載映象imagesc7---jdk,tomcat -----打包成images----匯出來放到其他機器上--run-images---容器

Docker介紹:

Docker是Docker.Inc公司開源的一個基於輕量級虛擬化技術的容器引擎專案,整個專案基於Go語言開發,並遵從Apache 2.0協議。透過分層映象標準化和核心虛擬化技術,Docker使得應用開發者和運維工程師可以以統一的方式跨平臺釋出應用,並且以幾乎沒有額外開銷的情況下提供資源隔離的應用執行環境。

Docker 是一個開源工具,它可以讓建立和管理 Linux 容器變得簡單。**容器就像是輕量級的虛擬機器,並且可以以秒級的速度來啟動或停止。**

官網:docker.com

docker.io  ---docker官方庫也叫docker-hub                   

沒有容器的時候:

1.rd開發產品(需要配置開發環境)lamp

2.測試(需要配置測試環境)

3.op上線(需要線上環境)

開發 測試 運維

有容器之後:

00001.  rd開發產品(需要在docker容器裡配置開發環境)

00002.  把容器打包成映象交給運維,運維上線 
Docker跟原有的工具區別:
傳統的部署模式是:安裝(包管理工具或者原始碼包編譯)->配置->執行;
Docker的部署模式是:複製->執行。
Docker對伺服器端開發/部署帶來的變化:
方便快速部署
對於部署來說可以極大的減少部署的時間成本和人力成本
Docker支援將應用打包進一個可以移植的容器中,重新定義了應用開發,測試,部署上線的過程,核心理念
Build once, Run anywhere
1)標準化應用釋出,docker容器包含了執行環境和可執行程式,可以跨平臺和主機使用;
2)節約時間,快速部署和啟動,VM啟動一般是分鐘級,docker容器啟動是秒級;
3)方便構建基於微服務架構的系統,透過服務編排,更好的松耦合;
4)節約成本,以前一個虛擬機器至少需要幾個G的磁碟空間,docker容器可以減少到MB級;

Docker 優勢:

1、交付物標準化

Docker的標準化交付物稱為"映象",它包含了應用程式及其所依賴的執行環境,大大簡化了應用交付的模式。

2、應用隔離

Docker可以隔離不同應用程式之間的相互影響,但是比虛擬機器開銷更小。總之,容器技術部署速度快,開發、測試更敏捷;提高系統利用率,降低資源成本.

3、一次構建,多次交付

類似於集裝箱的"一次裝箱,多次運輸",Docker映象可以做到"一次構建,多次交付"。

Docker的度量:

Docker是利用容器來實現的一種輕量級的虛擬技術,從而在保證隔離性的同時達到節省資源的目的。Docker的

可移植性可以讓它一次建立,到處執行。Docker的度量可以從以下四個方面進行:

1)隔離性

  透過核心的名稱空間來實現的,將容器的程式、網路、訊息、檔案系統和主機名進行隔離。

2)可度量性

 Docker主要透過cgroups控制組來控制資源的度量和分配。

3)移植性

 Docker利用AUFS來實現對容器的快速更新。

 AUFS是一種支援將不同目錄掛載到同一個虛擬檔案系統下的檔案系統,支援對每個目錄的讀寫許可權管理。AUFS具有層

  的概念,每一次修改都是在已有的只寫層進行增量修改,修改的內容將形成新的檔案層,不影響原有的層。

4)安全性

  安全性可以分為容器內部之間的安全性;容器與託管主機之間的安全性。

  容器內部之間的安全性主要是透過名稱空間和cgroups來保證的。

  容器與託管主機之間的安全性主要是透過核心能力機制的控制,可以防止Docker非法入侵託管主機。

 

Docker容器使用AUFS作為檔案系統,有如下優勢:

1)節省儲存空間

  多個容器可以共享同一個基礎映象儲存。

2)快速部署

3)升級方便

  升級一個基礎映象即可影響到所有基於它的容器。需要注意已經在執行的docker容器不受影響

容器和 VM 的主要區別:

表面區別:

容器佔用體積小,虛擬機器佔用體積大

隔離性:容器提供了基於程式的隔離,而虛擬機器提供了資源的完全隔離。

啟動速度:虛擬機器可能需要一分鐘來啟動,而容器只需要一秒鐘或更短。

容器使用宿主作業系統的核心,而虛擬機器使用獨立的核心。Docker 的侷限性之一是,它只能用在64位的作業系統上。

本質區別:

容器是被隔離的程式

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2694995/,如需轉載,請註明出處,否則將追究法律責任。

相關文章