什么是容器?一句話概括容器:容器就是將軟件打包成標準化單元,以用于開發、交付和部署。
容器鏡像是輕量的,可執行的獨立軟件包,包含軟件運行所需的所有內容:代碼,運行時環境,系統工具,系統庫和設置。
容器化軟件適用于基于linux和windows的應用,在任何環境中都能夠始終如一地運行。
容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助于減少團隊間在相同基礎設施上運行不同軟件時的沖突。
我覺得容器就是一個存放東西的地方,就像房子可以裝各種家具,書架可以放各種書。我們現在所說的容器存放的東西可能更偏向于應用,比如網站,程序甚至是系統環境。
Docker與虛擬機
Docker是一個能把開發的應用程序自動部署到容器的開源引擎
虛擬機(Virtual machine)指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。在實體計算機中能夠完成的工作在虛擬機中都能夠實現。在計算機中創建虛擬機時,需要將實體機的部分硬盤和內存容量作為虛擬機的硬盤和內存容量。每個虛擬機都有獨立的CMOS、硬盤和操作系統,可以像使用實體機一樣對虛擬機進行操作
(1) 虛擬機是在一臺物理機上,利用虛擬化技術,虛擬出來多個操作系統,每個操作系統之間是隔離的。docker是開源的應用容器引擎,依然需要先在電腦上安裝操作系統,然后安裝Docker容器管理器。
(2) 虛擬機是在硬件級別進行虛擬化,而docker是在操作系統的層面虛擬化
(3) 虛擬機是通過模擬硬件搭建操作系統,而docker則是復用操作系統
(4) 虛擬機實現了操作系統之間的隔離,docker只是進程之間的隔離,所以虛擬機的隔離級別更高,安全性更強
(5) docker的運行速度更快
(6) docker的文件要小的多,虛擬機要大