docker概述
docker是一個開源的軟件部署解決方案;
docker也是輕量級的應用容器框架;
docker可以打包、發布、運行任何的應用,這個也是docker的產品理念:Docker - Build, Ship, and Run Any App, Anywhere
docker采用的是LXC(Namespace+CGroups),即在Linux內核的Namespace[資源隔離]和CGroups[資源控制]技術的基礎上通過鏡像管理機制來實現輕量化設計。
docker組成
docker的組成包括docker server和dockerclient,其中docker包括的組件:容器(container)、鏡像(image)和倉庫(repositories),如下圖:

docker vs VM
docker作為容器的一種,跟傳統的VM存在很大的差異,首先從架構上比較2者所在的位置:

通過比較,我們可以看出,VM其實是在硬件的基礎上虛擬化(hypervisor)出來的操作系統,多個VM之間共享底層硬件資源。而docker是在Linux基礎上采用Namespace和CGroups技術進行的隔離,這就造就了docker既可以運行在硬件操作系統之上,也可以運行在VM之上。2者的區別也決定了,2者的差異,這里總結了兩者的差異,匯總如下:

docker既然存在這樣的特性,那么docker可以做什么呢?下圖給出了docker的8種場景,而作者從實際的工作出發,主要采用docker將現有產品的發布流程精簡化,減少了大量的環境配置工作,由于docker的隔離性,可以將應用程序打包成docker鏡像,同一個產品不同版本可以打包成不同的鏡像,這也方便了測試的工作。

因此,從不同的崗位看待docker,docker帶來的改變是全方面的
