Docker 是一個開源應用容器引擎,基于 Go 語言 并遵從Apache2.0協議開源。

Docker 可以讓開發(fā)者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現虛擬化。

容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

Docker 從 17.03 版本之后分為 CE(Community Edition: 社區(qū)版) 和 EE(Enterprise Edition: 企業(yè)版),對于我們的學習使用社區(qū)版就可以了。


誰適合閱讀本教程?

本教程適合運維工程師及后端開發(fā)人員,通過本教程你可以一步一步了解 Docker 的使用。


閱讀本教程前,您需要了解的知識

在閱讀本教程前,你需要掌握 Linux 的常用命令。你可以通過本站的 Linux 教程 來學習相關命令。


Docker的應用場景

  • Web 應用的自動化打包和發(fā)布。

  • 自動化測試和持續(xù)集成、發(fā)布。

  • 在服務型環(huán)境中部署和調整數據庫或其他的后臺應用。

  • 從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環(huán)境。


Docker 的優(yōu)點

  • 1、簡化程序:
    Docker 讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發(fā)者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優(yōu)勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,只需要數秒就能完成。

  • 2、避免選擇恐懼癥:
    如果你有選擇恐懼癥,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運行環(huán)境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、后臺應用、數據庫應用、大數據應用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署。

  • 3、節(jié)省開支:
    一方面,云計算時代到來,使開發(fā)者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。

  • 4、一致性:

    容器非常適合持續(xù)集成和持續(xù)交付(CI / CD)工作流程,請考慮以下示例方案:

    • 您的開發(fā)人員在本地編寫代碼,并使用 Docker 容器與同事共享他們的工作。
    • 他們使用 Docker 將其應用程序推送到測試環(huán)境中,并執(zhí)行自動或手動測試。
    • 當開發(fā)人員發(fā)現錯誤時,他們可以在開發(fā)環(huán)境中對其進行修復,然后將其重新部署到測試環(huán)境中,以進行測試和驗證。
    • 測試完成后,將修補程序推送給生產環(huán)境,就像將更新的鏡像推送到生產環(huán)境一樣簡單。
       Docker 允許開發(fā)人員使用您提供的應用程序或服務的本地容器在標準化環(huán)境中工作,從而簡化了開發(fā)的生命周期。

相關鏈接

Docker 官網:http://www.docker.com

Github Docker 源碼:https://github.com/docker/docker