Docker 是一個(gè)開源的應(yīng)用容器引擎,基于 Go 語言 并遵從Apache2.0協(xié)議開源。
Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。
Docker 從 17.03 版本之后分為 CE(Community Edition: 社區(qū)版) 和 EE(Enterprise Edition: 企業(yè)版),對(duì)于我們的學(xué)習(xí)使用社區(qū)版就可以了。
誰適合閱讀本教程?
本教程適合運(yùn)維工程師及后端開發(fā)人員,通過本教程你可以一步一步了解 Docker 的使用。
閱讀本教程前,您需要了解的知識(shí)
在閱讀本教程前,你需要掌握 Linux 的常用命令。你可以通過本站的 Linux 教程 來學(xué)習(xí)相關(guān)命令。
Docker的應(yīng)用場景
-
Web 應(yīng)用的自動(dòng)化打包和發(fā)布。
-
自動(dòng)化測試和持續(xù)集成、發(fā)布。
-
在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺(tái)應(yīng)用。
-
從頭編譯或者擴(kuò)展現(xiàn)有的OpenShift或Cloud Foundry平臺(tái)來搭建自己的PaaS環(huán)境。
Docker 的優(yōu)點(diǎn)
-
1、簡化程序:
Docker 讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,便可以實(shí)現(xiàn)虛擬化。Docker改變了虛擬化的方式,使開發(fā)者可以直接將自己的成果放入Docker中進(jìn)行管理。方便快捷已經(jīng)是 Docker的最大優(yōu)勢(shì),過去需要用數(shù)天乃至數(shù)周的 任務(wù),在Docker容器的處理下,只需要數(shù)秒就能完成。 -
2、避免選擇恐懼癥:
如果你有選擇恐懼癥,還是資深患者。Docker 幫你 打包你的糾結(jié)!比如 Docker 鏡像;Docker 鏡像中包含了運(yùn)行環(huán)境和配置,所以 Docker 可以簡化部署多種應(yīng)用實(shí)例工作。比如 Web 應(yīng)用、后臺(tái)應(yīng)用、數(shù)據(jù)庫應(yīng)用、大數(shù)據(jù)應(yīng)用比如 Hadoop 集群、消息隊(duì)列等等都可以打包成一個(gè)鏡像部署。 -
3、節(jié)省開支:
一方面,云計(jì)算時(shí)代到來,使開發(fā)者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價(jià)格的思維定勢(shì)。Docker 與云的結(jié)合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。 -
4、一致性:
容器非常適合持續(xù)集成和持續(xù)交付(CI / CD)工作流程,請(qǐng)考慮以下示例方案:
- 您的開發(fā)人員在本地編寫代碼,并使用 Docker 容器與同事共享他們的工作。
- 他們使用 Docker 將其應(yīng)用程序推送到測試環(huán)境中,并執(zhí)行自動(dòng)或手動(dòng)測試。
- 當(dāng)開發(fā)人員發(fā)現(xiàn)錯(cuò)誤時(shí),他們可以在開發(fā)環(huán)境中對(duì)其進(jìn)行修復(fù),然后將其重新部署到測試環(huán)境中,以進(jìn)行測試和驗(yàn)證。
- 測試完成后,將修補(bǔ)程序推送給生產(chǎn)環(huán)境,就像將更新的鏡像推送到生產(chǎn)環(huán)境一樣簡單。
相關(guān)鏈接
Docker 官網(wǎng):http://www.docker.com
Github Docker 源碼:https://github.com/docker/docker
更多建議: