什麼是Docker
Docker是一種容器技術,是用于在某種程度上替換系統虛拟化的解決方案。 使用Docker可以很快速及便捷的傳遞應用,不用在考慮硬體及系統的相容性,使而更關注與業務的發展。
Docker 和硬體虛拟化方式的差異在于Docker是在OS層面上實作虛拟化,而基于硬體虛拟化方式則是在HW層面實作。

P.S. 圖檔來自網絡
為什麼用docker
使用Docker可以更靈活的在開發流程中快速疊代的不停建立應用版本,而且便于在不同的環境(開發、生産、測試)中實作隔離,而且對于容器的建立是秒級的,高效的進行部署和擴容。
高效的部署和擴容
Docker可以運作于windows、linux、macos等,無論硬體層面是否存在差異都不影響對容器的遷移。對于容器的批量建立基本都是秒級别實作快速的大量容器建立,使用者可以通過腳本、配置中心等去實作不同環境的隔離和管理。
更高的資源使用率
Docker對于硬體資源的利用是複用Docker主機作業系統的,基本除了對容器運作的應用會消耗硬體資源、本身的容器系統所占用的硬體資源開銷是非常低的。對于容器來講,可以極高的利用到系統的硬體資源。
更簡單的管理
Docker定義了鏡像之後,可以依賴于配置中心、腳本等工具實作批量的程式配置更新,取代傳統的人工手動實作配置的修改或釋出。進而可以更加高效的實作自動化管理。
Docker服務架構
Docker引擎是一個Client/Server結構的應用,Client通過REST API與Server程序通信實作容器、鏡像、網絡、卷等資源的管理。
相關的資源概念
鏡像(image)
鏡像包含了系統及應用。對于使用者隻能在鏡像新增一個寫入層實作封裝,無法在原有鏡像直接寫入修改。使用者可以使用鏡像建立 Docker 容器。
倉庫(repository)
倉庫是用于鏡像檔案的托管。使用者可以使用倉庫對鏡像進行取出(pull)或者存入(push)及删除等操作的管理。
容器(container)
容器是用于運作應用的載體,并且容器是基于鏡像進行運作的,在運作中資料是相當于在鏡像的隻讀層上在加多了一層可寫層,使用者可以基于鏡像建立一個或多個容器。
資料卷(volumes)
資料卷是提供持久化資料的載體。在容器中,資料會随着容器的生命周期關閉而消失,但在資料卷中資料是持久化的。
網絡(network)
網絡(network)是為了實作容器間或容器與外接進行通信,Docker提供了6種網絡模式來解決不同場景下的連接配接方案,分别是bridge、host、overlay、macvlan、none、network plugin。