容器技術是英文linux Container的直譯,這種技術最初使用在Linux操作系統上。如下圖所示,在 Linux系統中,容器技術是一種隔離技術,通過容器技術將不同服務封裝在對應的容器中,之后結合一些腳本使這些容器按照要求相互協作。所有容器共享同一個操作系統內核。每個容器可單獨限制CPU、內存、硬盤和網絡帶寬容量,并且擁有獨立的IP地址和操作系統管理員賬戶。
容器是一個標準的軟件單元,它打包代碼及其所有依賴項,以便應用程序從一個計算環境快速可靠地遷移到另一個計算環境。Docker 容器鏡像是一個輕量級的、獨立的、可執行的軟件包,包括運行應用程序所需的一切:如代碼、運行環境、系統工具、系統庫和設置。Docker是容器的引擎,通過Docker引擎就可以實現容器的功能。
容器技術最重要的價值是:為在不同主機上運行的應用程序服務提供一個輕便、一致的格式。容器格式的標準化可加快交付體驗,允許用戶方便地對工作負載進行遷移,避免局限于單一的平臺提供商。利用容器可以短時間內部署成百上千個應用,保證用戶應用快速上線;容器可以簡化配置過程,用戶應用的運行環境可以直接打包到容器內,使用時可以直接啟動。
如上圖所示,左圖為容器技術架構圖,右圖為虛擬化技術架構圖。兩者相比,容器與虛擬機最大的不同是容器里不再安裝操作系統,容器的本質是一種操作系統級別的虛擬化,啟動一個應用容器其實就是啟動一個進程,節省了大量操作系統所占資源,同樣一臺計算機就可以服務于更多租戶。容器技術對操作系統的資源進行再次抽象,而并非對整個物理機資源進行虛擬化。容器和虛擬機一起使用為部署和管理應用程序提供了極大的靈活性。
Docker容器無處不在Linux,windows,數據中心,云服務器等。