docker概述
docker是一個(gè)開源的軟件部署解決方案;
docker也是輕量級(jí)的應(yīng)用容器框架;
docker可以打包、發(fā)布、運(yùn)行任何的應(yīng)用,這個(gè)也是docker的產(chǎn)品理念:Docker - Build, Ship, and Run Any App, Anywhere
docker采用的是LXC(Namespace+CGroups),即在Linux內(nèi)核的Namespace[資源隔離]和CGroups[資源控制]技術(shù)的基礎(chǔ)上通過鏡像管理機(jī)制來實(shí)現(xiàn)輕量化設(shè)計(jì)。
docker組成
docker的組成包括docker server和dockerclient,其中docker包括的組件:容器(container)、鏡像(image)和倉(cāng)庫(kù)(repositories),如下圖:
docker vs VM
docker作為容器的一種,跟傳統(tǒng)的VM存在很大的差異,首先從架構(gòu)上比較2者所在的位置:
通過比較,我們可以看出,VM其實(shí)是在硬件的基礎(chǔ)上虛擬化(hypervisor)出來的操作系統(tǒng),多個(gè)VM之間共享底層硬件資源。而docker是在Linux基礎(chǔ)上采用Namespace和CGroups技術(shù)進(jìn)行的隔離,這就造就了docker既可以運(yùn)行在硬件操作系統(tǒng)之上,也可以運(yùn)行在VM之上。2者的區(qū)別也決定了,2者的差異,這里總結(jié)了兩者的差異,匯總?cè)缦拢?/p>
docker既然存在這樣的特性,那么docker可以做什么呢?下圖給出了docker的8種場(chǎng)景,而作者從實(shí)際的工作出發(fā),主要采用docker將現(xiàn)有產(chǎn)品的發(fā)布流程精簡(jiǎn)化,減少了大量的環(huán)境配置工作,由于docker的隔離性,可以將應(yīng)用程序打包成docker鏡像,同一個(gè)產(chǎn)品不同版本可以打包成不同的鏡像,這也方便了測(cè)試的工作。
因此,從不同的崗位看待docker,docker帶來的改變是全方面的