1.容器的定義
? 容器是一種輕量級、可移植的軟件打包技術(shù)。容器的設(shè)計人員將集裝箱的思維運用到軟件打包上,解決了軟件在不同的環(huán)境的移植部署的問題。
2、容器相較于傳統(tǒng)虛擬機的優(yōu)勢
? ? 從容器的定義可知,容器有兩個特點:輕量級、可移植性好。
? ? 容器的輕量級很好理解,相比傳統(tǒng)的虛擬機,容器是共享host os 的也就是容器是到進(jìn)程級別的虛擬化,傳統(tǒng)的vm除了包含應(yīng)用本身極其依賴庫以外還包括操作系統(tǒng)(幾十GB),因此說容器體積小,由于不用涉及操作系統(tǒng)的啟動,容器的啟動性能也會比傳統(tǒng)虛擬機好。
? ? 要理解容器的另一個優(yōu)點“可移植性好”,只需要理解容器的英文單詞即可,容器的英文叫container,直接翻譯就是“集裝箱”。集裝箱是干嘛的呢?集裝箱解決了不同的貨物在不同的交通工具運輸?shù)膯栴},在沒有集裝箱之前,對于貨物的貨主來說需要考慮貨物的打包問題(比如鋼鐵不能壓在雞蛋和香蕉上-_-||),對于運輸過程中的承運方來說也有同樣卸貨搬貨的痛苦,幸運的是集裝箱被設(shè)計出來了,任何貨物被放到各自的集裝箱里,以標(biāo)準(zhǔn)的集裝箱(重點是標(biāo)準(zhǔn)化)被運輸,承運方無需關(guān)心集裝箱里具體的物品,也就不用擔(dān)心鋼鐵把雞蛋壓歲。而今天我們的軟件開發(fā)也面臨應(yīng)用部署環(huán)境多樣(不同操作系統(tǒng)的虛擬機、服務(wù)器),如何才能讓應(yīng)用在不同的環(huán)境上運行的問題,docker引入集裝箱的概念到軟件打包上,將應(yīng)用及其依賴打包成容器,而容器提供標(biāo)準(zhǔn)化接口,可以運行在幾乎所有的平臺上:公有云、私有云、物理主機、虛擬機,也就解決了應(yīng)用移植的問題。