1.01 容器技術和docker簡介
阿新 • • 發佈:2018-12-05
1.部署演變
- 在一臺物理機部署Application
- 在windows或者linux作業系統部署Application
- Operating System作業系統如win10,Physical server如機器
- 部署比較慢,要準備物理伺服器
- 伺服器要部署到機房,安裝作業系統,安裝Application,需要各種依賴
- 成本非常高,買物理伺服器
- 資源浪費,CPU和記憶體根本用不完
- 很難遷移和擴充套件
- 可能會被限定硬體廠商,早期不僅僅有X86系統
- 虛擬化技術
- 在物理伺服器上,通過Hypervisor做物理資源虛擬化,例如CPU資源,記憶體資源,硬碟資源
- 在虛擬化層之上,安裝作業系統,也就是虛擬機器,做物理資源排程,實現物理資源利用率的提高
- 一臺物理機上執行很多虛擬機器,部署很多單獨的Application
- 虛擬化的優點1:資源池,一個物理機的資源分配到了不同的虛擬機器裡,做物理資源的管理
- 虛擬化的優點2:很容易擴充套件,加物理機或者加虛擬機器
- 虛擬化的優點3:很容易雲化,亞馬遜AWS,阿里雲等,大多數公司提供的服務都部署在雲上,使用了虛擬化的技術
- 虛擬化的侷限性:每一個虛擬機器都是一個完整的作業系統,要給其分配資源,當虛擬機器數量增多時,作業系統本身消耗的資源勢必增多
2.容器的必要性
- 開發人員開發一個Application需要各種環境,各種依賴
- 運維人員部署Application時也需要搭建各種環境
- 容器解決了開發和運維人員之間的溝通
- 通過容器對整個Application打包,將打包好的Application執行在任何環境
3.容器解決的問題
- 解決了開發和運維之間的矛盾
- 在開發和運維之間搭建了一個橋樑,是實現DevOps(後面詳細講)的最佳解決方案
4.容器是什麼
- 對軟體和其依賴的標準化打包
- 應用之間相互隔離
- 共享同一個OS Kernel
- 可以執行在很多主流作業系統上
5.虛擬機器與容器的區別
- 虛擬機器是物理層面的隔離,容器是Application層面的隔離
- 底層Infrastructure是硬體資源
- 容器不需要Guest OS虛擬機器的作業系統,而是直接在本地作業系統之上,實現Application的隔離
- 容器和虛擬化技術也可以集合使用
- 底層Infrastructure上通過Hypervisor做硬體資源虛擬化,然後建立Guest OS,也就是虛擬機器,在虛擬機器裡安裝容器docker,在容器裡執行Application
6.docker是什麼
- 是容器技術的一種實現,還要其他實現
- docker是目前最流行的容器技術的實現
- 2004~2008年Linux已經出現了LXC,2013年docker包裝了LXC,2013年三月開源,2016年docker分為企業版和社群版
7.docker能做什麼
- 簡化配置
- 容器最重要的功能,原始碼、執行環境、配置都打包到一個容器,執行在不同的系統上
- 減少在部署時產生的錯誤
- 程式碼流水線管理
- 提高開發效率
- 隔離應用
- 整合伺服器
- 除錯能力
- 多租戶
- 快速部署
8.docker和kubernates
- docker
- kubernetes,簡稱k8s,因為k和s之間有8個字母
9.DevOps
- DevOps ——解決開發和運維間合作和溝通
- 不光靠docker,還有版本管理,持續整合等
10.docker的應用
- 在2015年的618大促中,京東大膽啟用了基於Docker的容器技術來承載大促的關鍵業務(圖片展現、單品頁、團購頁),當時基於Docker容器的彈性雲專案已經有近萬個Docker容器在線上環境執行,並且經受住了大流量的考驗
- 2016年618中,彈性雲專案更是擔當重任,全部應用系統和大部分的DB服務都已經跑在Docker上,包括商品頁面、使用者訂單、使用者搜尋、快取、資料庫,京東線上將會啟動近15萬個Docker容器
- 京東彈性計算雲通過軟體定義資料中心與大規模容器叢集排程,實現海量計算資源的統一管理,並滿足效能與效率方面的需求,提升業務自助上線效率。應用部署密度大幅提升,資源使用率提升,節約大量的硬體資源
- docker全球範圍使用者量圖示