Docker 教學

Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從 Apache2.0 協定開源。

Docker 可以讓開發者打套件他們的應用以及依賴套件到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。

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

Docker 從 17.03 版本之後分為 CE(Community Edition: 社區版) 和 EE(Enterprise Edition: 企業版),我們用社區版就可以了。


誰適合閱讀本教學?

本教學適合運維工程師及後端開發人員,透過本教學你可以一步一步了解 Docker 的使用。


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

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


Docker的應用場景

  • Web 應用的自動化打套件和釋出。

  • 自動化測試和持續整合、釋出。

  • 在服務型環境中部署和調整資料庫或其他的後台應用。

  • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來建置自己的 PaaS 環境。


Docker 的優點

Docker 是一個用於開發,交付和執行應用程式的開放平台。Docker 使您能夠將應用程式與基礎架構分開,從而可以快速交付軟體。藉助 Docker,您可以與管理應用程式相同的方式來管理基礎架構。透過利用 Docker 的方法來快速交付,測試和部署程式碼,您可以大大減少寫程式和在生產環境中執行程式碼之間的延遲。

1、快速,一致地交付您的應用程式

Docker 允許開發人員使用您提供的應用程式或服務的本地容器在標準化環境中工作,從而簡化了開發的生命周期。

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

  • 您的開發人員在本地寫程式,並使用 Docker 容器與同事共享他們的工作。
  • 他們使用 Docker 將其應用程式推送到測試環境中,並執行自動或手動測試。
  • 當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。
  • 測試完成後,將修補程式推送給生產環境,就像將更新的映像檔推送到生產環境一樣簡單。

2、響應式部署和擴展

Docker 是基於容器的平台,允許高度可移植的工作負載。Docker 容器可以在開發人員的本機上,資料中心的物理或虛擬機上,雲服務上或混合環境中執行。

Docker 的可移植性和輕量級的屬性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,即時擴展或拆除應用程式和服務。

3、在同一硬體上執行更多工作負載

Docker 輕巧快速。它為基於虛擬機管理程式的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情。


相關連結

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

Github Docker 原始碼:https://github.com/docker/docker-ce