什麼是容器?——標準化的軟件單元linux
將軟件打包成標準化單元,用於開發,裝運和部署docker
容器是一個標準的軟件單元,它將代碼及其全部的依賴關係打包,以便應用程序從計算環境快速可靠地運行到另一個計算環境。Docker容器映像是一個輕量級,獨立地可執行軟件包,包含運行應用程序所需地一切:代碼,運行時,系統工具,系統庫和設置。ubuntu
容器映像在運行時成爲容器,在Docker容器的狀況下——映像在Docker Engine上運行時成爲容器。適用於基於Linux和Windows的應用程序,不管基礎架構如何,容器化軟件都將始終運行相同。容器將軟件與其環境隔離開來,並確保它能夠統一運行,儘管開發和分段之間存在差別。windows
在Docker Engine上運行的Docker容器:centos
- 標準: 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的功能擴展到第三方提供的工具。
容器和虛擬機比較oracle
容器和虛擬機具備相似的資源隔離和分配優點,但功能不一樣,由於容器虛擬化操做系統而不是硬件。容器更便攜,更高效
容器:容器是應用層的抽象,它將代碼和依賴關係打包在一塊兒。多個容器能夠在同一臺機器上運行,並與其餘容器共享操做系統內核,每一個容器在用戶空間中做爲獨立進程運行。容器佔用的空間比VM少(容器映像的大小一般爲幾十MB),能夠處理更多的應用程序,而且須要更少的VM和操做系統。
虛擬機:虛擬機(VM)是物理硬件的抽象,將一臺服務器轉變爲多臺服務器。管理程序容許多臺VM在單臺機器上運行。每一個VM都包含操做系統的完整副本,應用程序,必要的二進制文件和庫 - 佔用數十GB。虛擬機也可能很慢啓動。