Docker的使用場景以及優缺點

2021-08-22 13:33:34 字數 2217 閱讀 6836

虛擬機器的最大好處是能在你的硬體設施上執行各種配置不一樣的平台(軟體, 系統), docker在降低額外開銷的情況下提供了同樣的功能. 它能讓你將執行環境和配置放在**彙總然後部署, 同乙個docker的配置可以在不同的環境環境中使用, 這樣就降低了硬體要求和應用環境之間耦合度.

**從開發者的機器到最終在生產環境上的部署, 需要經過很多的中堅環境. 而每乙個中間環境都有自己微小的差別,  docker給應用提供了乙個從開發到上線均一致的環境, 讓**的流水線變得簡單不少.

不同環境中, 開發者的共同目標:

一, 想讓開發環境盡量貼近生產環境.

二 , 想快速搭建開發環境

開發環境的機器通常記憶體比較小, 之前使用虛擬的時候, 我們經常需要為開發環境的機器加記憶體, 而現在docker可以輕易的讓幾十個服務在docker中跑起來.

開發時會在乙個臺機器上執行不同的應用.

一, 為了降低成本, 進行伺服器整合

二, 將乙個整體式的應用拆分成低耦合的單個服務(微服務架構)

docker隔離應用的能力使得docker可以整合多個伺服器以降低成本. 由於沒有多個作業系統的記憶體占用, 以及能在多個例項之間共享沒有使用的記憶體, docker可以比虛擬機器提供更好的伺服器整合解決方案.

docker提供了很多的工具, 這些工具不一定只是針對容器, 但是卻適用於容器. 他們提供了很多功能, 包括可以為容器設定檢查點, 設定版本, 檢視兩個容器之間的差別, 這些特性可以幫助除錯bug.

多租戶環境的應用中, 它可以避免關鍵應用的重寫.我們乙個特別的關於這個場景的例子是為lot(物聯網)的應用開發乙個快速, 易用的多租戶環境. 這種多租戶的基本**非常複雜, 很難處理, 重新規劃以應用不但消耗時間, 也浪費金錢.

使用docker, 可以為每乙個租戶的應用層的多個例項建立隔離的環境, 這不僅簡單而且成本低廉, 因為docker環境啟動的速度快, diff命令很高效.

docker為程序建立乙個容器, 不需要啟動乙個作業系統, 時間縮短為秒級別.

可以在資料中心建立銷毀資源而無須擔心重新啟動帶來的開銷. 通常資料中心的資源利用率只有30% , 通過使用docker並進行有效的資源分配可以提高資源的利用率.

docker元件(核心):映象、容器、庫。

採用c/s

架構:客戶端(執行程式)

→通過命令列和

api形式和守候程式(提供

docker

服務)進行通訊。

映象:乙個唯讀的靜態模板(框架體系);包含環境和應用執行**(框架語言);採用分層機制。將新增資料通過聯合檔案系統附加在原基礎上。

容器:乙個執行時環境,是映象的執行狀態,是映象執行的一種動態表現。

庫:使用註冊伺服器(共有的

or私有的)儲存和共享使用者的映象,是某個特定使用者儲存映象的目錄。

*docker特性

*隔離性:

libcontainer

(預設容器)

=>

核心命名空間。 *

安全性:內部(

cgroups)| 

容器和宿主主機(核心能力機制)。 *

可度量性:

cgroups

(控制組)

→資源度量和分配(使用者)。 *

移植性:

aufs

(快速更新)

→層的概念。

-----

使用aufs

作為docker

容器的檔案系統,提供的好處:

docker優點(比較lxc):*

跨平台可移植性:按統一標準打包(映象中),可傳播。 *

面向應用:優化部署應用(設計哲學)

→api

,介面及文件(體現)。 *

版本控制:追蹤、查詢、記錄版本資訊(應用程式更改史)和回滾版本等 *

元件復用:元件式搭建(基礎映象)

→python(

執行環境

) | postgreasql(

基礎映象)。

*

Docker的使用場景以及優缺點

虛擬機器的最大好處是能在你的硬體設施上執行各種配置不一樣的平台 軟體,系統 docker在降低額外開銷的情況下提供了同樣的功能.它能讓你將執行環境和配置放在 彙總然後部署,同乙個docker的配置可以在不同的環境環境中使用,這樣就降低了硬體要求和應用環境之間耦合度.從開發者的機器到最終在生產環境上的...

docker入門 docker應用場景和優勢

一 什麼是docker docker是乙個使用 go 語言開發的,並且開源的應用容器引擎,基於lxc linux container 核心虛擬化技術實現,提供一系列更強的功能,比如映象 dockerfile等 docker理念是將應用及依賴包打包到乙個可移植的容器中,可發布到任意linux發行版的d...

單例模式 Singleton 應用場景和優缺點

概述 單例 singleton 模式要求乙個類有且僅有乙個例項,並且提供了乙個全域性的訪問點。這就提出了乙個問題 如何繞過常規的構造器,提供一種機制來保證乙個類只有乙個例項?客戶程式在呼叫某乙個類時,它是不會考慮這個類是否只能有乙個例項等問題的,所以,這應該是類設計者的責任,而不是類使用者的責任。從...