Docker的思想來自于集裝箱蜡豹,集裝箱解決了什么問題?在一艘大船上溉苛,可以把貨物規(guī)整的擺放起來镜廉。并且各種各樣的貨物被集裝箱標(biāo)準(zhǔn)化了,集裝箱和集裝箱之間不會互相影響愚战。那么我就不需要專門運送水果的船和專門運送化學(xué)品的船了娇唯。只要這些貨物在集裝箱里封裝的好好的,那我就可以用一艘大船把他們都運走寂玲。
docker就是類似的理念∈永郑現(xiàn)在都流行云計算了,云計算就好比大貨輪敢茁。docker就是集裝箱佑淀。
1.不同的應(yīng)用程序可能會有不同的應(yīng)用環(huán)境,比如.net開發(fā)的網(wǎng)站和php開發(fā)的網(wǎng)站依賴的軟件就不一樣彰檬,如果把他們依賴的軟件都安裝在一個服務(wù)器上就要調(diào)試很久伸刃,而且很麻煩,還會造成一些沖突逢倍。比如IIS和Apache訪問端口沖突捧颅。這個時候你就要隔離.net開發(fā)的網(wǎng)站和php開發(fā)的網(wǎng)站。常規(guī)來講较雕,我們可以在服務(wù)器上創(chuàng)建不同的虛擬機在不同的虛擬機上放置不同的應(yīng)用碉哑,但是虛擬機開銷比較高挚币。docker可以實現(xiàn)虛擬機隔離應(yīng)用環(huán)境的功能,并且開銷比虛擬機小扣典,小就意味著省錢了妆毕。
2.你開發(fā)軟件的時候用的是Ubuntu,但是運維管理的都是centos贮尖,運維在把你的軟件從開發(fā)環(huán)境轉(zhuǎn)移到生產(chǎn)環(huán)境的時候就會遇到一些Ubuntu轉(zhuǎn)centos的問題笛粘,比如:有個特殊版本的數(shù)據(jù)庫,只有Ubuntu支持湿硝,centos不支持薪前,在轉(zhuǎn)移的過程當(dāng)中運維就得想辦法解決這樣的問題。這時候要是有docker你就可以把開發(fā)環(huán)境直接封裝轉(zhuǎn)移給運維关斜,運維直接部署你給他的docker就可以了示括。而且部署速度快。
3.在服務(wù)器負(fù)載方面痢畜,如果你單獨開一個虛擬機垛膝,那么虛擬機會占用空閑內(nèi)存的,docker部署的話裁着,這些內(nèi)存就會利用起來繁涂。
總之docker就是集裝箱原理。