Docker優勢——我們為什麼選擇Docker
什麼是容器?——標準化的軟體單元
將軟體打包成標準化單元,用於開發,裝運和部署
容器是一個標準的軟體單元,它將程式碼及其所有的依賴關係打包,以便應用程式從計算環境快速可靠地執行到另外一個計算環境。Docker容器映像是一個輕量級,獨立地可執行軟體包,包含執行應用程式所需地一切:程式碼,執行時,系統工具,系統庫和設定。
容器映像在執行時成為容器,在Docker容器的情況下——映像在Docker Engine上執行時成為容器。適用於基於Linux和Windows的應用程式,無論基礎架構如何,容器化軟體都將始終執行相同。容器將軟體與其環境隔離開來,並確保它可以統一執行,儘管開發和分段之間存在差異。
在Docker Engine上執行的Docker容器:
- 標準: Docker建立了容器的行業標準,因此它們可以隨處攜帶
- 輕量級:容器共享機器的作業系統核心,因此不需要每個應用程式的作業系統,從而提高伺服器效率並降低伺服器和許可成本
- 安全:應用程式在容器中更安全,Docker提供業界最強大的預設隔離功能
Docker引擎引發了容器化運動
Docker Engine是業界事實上的容器執行時,可在各種Linux(CentOS,Debian,Fedora,Oracle Linux,RHEL,SUSE和Ubuntu)和Windows Server
作業系統上執行。Docker建立了簡單的工具和通用打包方法,將所有應用程式依賴項捆綁在一個容器中,然後在Docker Engine上執行。Docker Engine使容器化應用程式能夠在任何基礎架構上一致地執行,為開發人員和運營團隊解決“依賴性問題”,並消除“它在我的膝上型電腦上工作!”問題。
為何選擇Docker Engine
詳細資訊:https://www.docker.com/products/container-runtime
- 加速創新:Docker Engine構成了Docker Enterprise平臺的基礎,使開發人員和運營商能夠快速,安全地將想法變為現實。
- 選擇自由
:Docker Engine支援任何型別的應用程式 - 遺留到雲原生,單片到12因子 - 並可與多個作業系統一起使用,跨混合/多雲,並經過驗證可與Kubernetes CRI配合使用。- 內在安全:Docker Engine在構建時考慮了安全性。藉助Docker Content Trust和FIPS 140-2驗證,Docker Engine使用者可以在高度監管的環境中執行容器化應用程式。
主要特點和功能
- 由containerd提供支援:基於領先的開源容器執行時,是雲端計算本地計算基金會(CNCF)的分級專案。Containerd實現了Kubernetes容器執行時介面(CRI),並在公共雲和企業中廣泛採用。
- FIPS 140-2加密:NIST已對其加密驗證的唯一容器執行時,為部署容器化應用程式形成安全且合規的基礎。“安全設計”工程理念的一部分。
- 強制簽名影象:通過在部署之前強制執行適當的影象數字簽名來驗證容器的來源。阻止使用者使用來自未知來源的容器影象或從未知來源的基礎層構建容器影象。
- 整合的BuildKit:BuildKit是一個開源工具,它從Dockerfile獲取指令並“構建”Docker映象。這個過程可能需要很長時間,因此BuildKit提供了一些體系結構增強功能,使其更快,更精確,更便攜。
- Docker CLI:與Docker容器互動的最流行方式是Docker CLI - 一個簡單但功能強大的客戶端,它通過一組清晰的命令極大地簡化了管理容器例項的方式。
- 認證外掛:通過經過驗證和認證的外掛,將Docker Engine與您首選的網路,儲存和日誌記錄工具整合在一起。外掛架構將Docker Engine的功能擴充套件到第三方提供的工具。
容器和虛擬機器比較
容器和虛擬機器具有類似的資源隔離和分配優勢,但功能不同,因為容器虛擬化作業系統而不是硬體。容器更便攜,更高效
容器:容器是應用層的抽象,它將程式碼和依賴關係打包在一起。多個容器可以在同一臺機器上執行,並與其他容器共享作業系統核心,每個容器在使用者空間中作為獨立程序執行。容器佔用的空間比VM少(容器映像的大小通常為幾十MB),可以處理更多的應用程式,並且需要更少的VM和作業系統。
虛擬機器:虛擬機器(VM)是物理硬體的抽象,將一臺伺服器轉變為多臺伺服器。管理程式允許多臺VM在單臺機器上執行。每個VM都包含作業系統的完整副本,應用程式,必要的二進位制檔案和庫 - 佔用數十GB。虛擬機器也可能很慢啟動。