1.容器和Docker
-
容器:在linux中,容器技術是一種進程隔離的技術,應用可以運行在每個相互隔離的容器中。
容器與虛擬機的區別:在容器中,各個應用共用一個kernel。 - Docker:Docker是一家公司,在13年之前公司名叫 dotCloud,Docker僅僅是一個容器管理的產品。在13年,將Docker開源,Docker風靡全球,公司也更名為Docker。
2.容器技術的演進
1979年,有了容器技術的雛形,chroot技術的引進開啟了進程隔離技術
2000年,FreeBSD Jails將計算機分為多個獨立的小型計算系統。
2006年,谷歌 Process Containers技術,在進程隔離的基礎上,進行了計算資源的限制
2018年,LXC,作為第一個完整的容器管理工具
2013年,LMCTFY實現了linux應用程序的程序化,成為libcontainer的重要組成部分。
2013年,Docker最初使用的是LXC,后來被替換成libcontainer
3. Docker技術的迅猛發展
Google Trend
在開源之后迎來迅猛的發展,在現在也保持著迅猛的發展勢頭
4. Docker技術發展迅猛的原因總結:
應用架構正在發生變革---微服務化
在互聯網時代,為了實現更快的開發迭代和更好的彈性伸縮,互聯網應用不再采用傳統的3層架構,而是采用微服務的方式。以此實現軟件系統的松耦合,跨部門開發和快速交互的目的。基礎架構系統也在發生變革---虛擬化、混合云
從硬件服務器到虛擬機到企業私有云,從本地數據中心到栽培數據中心再到公有云。
硬件架構的顆粒化,底層系統的復雜化,給應用的開發、測試、發布、運維帶來了極大的挑戰。
應用服務器數量成倍增長,環境的交付速度要求也越來越高,應用遷移越來越頻繁,應用所需的動態伸縮、永遠可用的期望,運維傳統的基礎架構平臺已經跟不上互聯網的步伐。
5.他山之石,可以攻玉【容器技術的作用】
類比集裝箱的發明:各種貨物可以通過集裝箱裝運。集裝箱改變了整個運輸環境,大大降低了運輸成本。
將應用的各種組件封裝起來。一次封裝,多次部署,隨時遷移,不需要關注底層環境
6.Docker定義的標準+服務應用
-
基礎設施標準化(Docker Engine):所有的Linxu系統都支持Docker
Engine。有了Docker Engine,可將Docker容器跑起來。 - 應用交付的標準化(Docker Image):提供了一套應用快速打包為輕量級Docker Image的方法。開發人員在代碼完成之后,可以將其打包為鏡像;
- 運維管理的標準化(Docker container):運維人員不在需要將應用準備系統、運行環境、組件和基礎軟件包,容器時代,應用都運行在一個個的Docker container中。標準運維將關注容器,而不是復雜的系統環境。
- 分發部署標準化(Docker Registry):指的是容器化之后不同版本的應用鏡像都存儲在鏡像倉庫中。運維人員可以講鏡像倉庫中特定版本的鏡像一次部署到開發環境、測試環境和生產環境中,可以實現應用版本的快速升級或回退。