1. 程式人生 > >1.01 容器技術和docker簡介

1.01 容器技術和docker簡介

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全球範圍使用者量圖示
    在這裡插入圖片描述