什么是Docker
doker是一個(gè)開源的應(yīng)用容器引擎,基于GO語(yǔ)言開發(fā),并遵從apache2.0協(xié)議開源。
docker可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類似iPhone的app),更重要的是容器性能開銷極低。
Union File System
Docker聯(lián)合文件系統(tǒng)Union File System,它是實(shí)現(xiàn)Docker鏡像的技術(shù)基礎(chǔ),是一種輕量級(jí)的高性能分層文件系統(tǒng),支持將文件系統(tǒng)中的修改進(jìn)行提交和層層疊加,這個(gè)特性使得鏡像可以通過分層實(shí)現(xiàn)和繼承。同時(shí)支持將不同目錄掛載到同一個(gè)虛擬文件系統(tǒng)下。
當(dāng)用戶通過升級(jí)程序到新版本,改變了一個(gè)Docker鏡像時(shí),一個(gè)新的鏡像層會(huì)被創(chuàng)建。因此,用戶不用替換整個(gè)原鏡像或者完全重新建立新鏡像,只需要添加新層即可。在用戶分發(fā)鏡像的時(shí),也只需要分發(fā)被改動(dòng)的新層內(nèi)容(增量部分)。這讓Docker的鏡像管理變得十分輕松級(jí)和快速。
Docker的應(yīng)用場(chǎng)景
- web應(yīng)用的自動(dòng)化打包盒發(fā)布
- 自動(dòng)化測(cè)試和持續(xù)集、成發(fā)布
- 在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫(kù)或其他的后臺(tái)應(yīng)用。
- 從頭編譯或者擴(kuò)展現(xiàn)有的OpenShift或Cloud Foundry平臺(tái)來(lái)搭建自己的PasS環(huán)境
Docker的優(yōu)點(diǎn)
- 簡(jiǎn)化程序:
Docker讓開發(fā)者可以打包他們的應(yīng)用以及以來(lái)包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,便可以實(shí)現(xiàn)虛擬化。Docker改變了虛擬化的方式,是開發(fā)者可以直接將自己的成果放入Docker中進(jìn)行管理。方便快捷已經(jīng)是Docker的最大優(yōu)勢(shì),過去需要數(shù)天乃至數(shù)周的任務(wù),在Docker容器的處理下,只需要數(shù)秒就能完成。
- 簡(jiǎn)化程序:
- 避免選擇恐懼癥:
如果你有選擇恐懼癥,還是資深患者。Docker幫你打包你的糾結(jié)!比如Docker鏡像;Docker鏡像中包含了運(yùn)行環(huán)境和配置,所以Docker可以簡(jiǎn)化部署多種應(yīng)用實(shí)例工作。比如web應(yīng)用、后臺(tái)應(yīng)用、數(shù)據(jù)庫(kù)應(yīng)用、大數(shù)據(jù)應(yīng)用比如Hadoop集群、消息隊(duì)列等等都可以打包成一個(gè)鏡像部署。
- 避免選擇恐懼癥:
- 節(jié)省開支
一方面,云計(jì)算時(shí)代到來(lái),是開發(fā)者不必為了主球效果而配置高額的硬件,Docker改變了高性能必然高價(jià)格的思維定勢(shì)。Docker云的結(jié)合,讓云空間得到充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。
- 節(jié)省開支