1. 程式人生 > >Docker學習(一):什麼是Docker?

Docker學習(一):什麼是Docker?

一、什麼是Docker?

  Docker 是一個基於Go語言實現的開源應用容器專案,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux機器上,也可以實現虛擬化。

  Docker的構想是要實現對應用元件級別的“一次封裝、到處執行”,這裡的應用元件,既可以是一個Web應用、一個編譯環境,也可以是一套資料庫平臺服務,甚至是一個作業系統或叢集。

二、Docker容器的誕生

  Docker是目前最流行的容器化技術之一,Docker的誕生在Linxu容器(LXC)之上的。

  在LXC的基礎上,Docker進一步優化了容器的使用體驗。首先,Docker提供了各種容器管理工具,讓使用者無需關注底層的操作,更加簡明地管理和使用容器;其次,Docker引入了分層檔案系統構建和高效的映象機制,降低了遷移難度,極大地改善了使用者體驗。

三、為什麼要使用Docker?

1、更高效地利用系統資源

  Docker容器不需要進行硬體虛擬化,沒有虛擬機器管理應用和虛擬機器作業系統的開銷,而是直接複用本機的作業系統,對系統資源的利用更高效。無論是應用執行速度、記憶體損耗或者檔案儲存速度,都要比傳統虛擬機器技術更高 效。

2、輕鬆地應用遷移

  在雲時代,開發者建立的應用必須要能夠很方便地在網路上傳播,也就是必須脫離底層物理硬體的限制。

  舉個簡單的例子,以傳統方式進行應用遷移時,必須保證新宿主機與原來的機器環境一致,就需要搭建環境、部署專案、除錯等一系列操作,費時費力。而Docker通過容器來打包應用、使應用和機器環境解耦,遷移的時候只需要在新的伺服器上啟動容器即可。

3、更快的啟動時間

  傳統的虛擬機器技術啟動應用服務往往需要數分鐘,而 Docker 容器應用,由於直接運行於宿主 核心,無需啟動完整的作業系統,因此可以做到秒級、甚至毫秒級的啟動時間。大大的節約 了開發、測試、部署的時間。

4、一致的執行環境

  使用Docker,開發人員可以使用映象來快速構建一套標準的開發環境;而測試、生產環境完全可以複用開發環境,達到一致的執行環境,減少因環境不一致產生的Bug因素。Docker可以快速建立、刪除容器,實現快速迭代,節約開發、測試、部署的的大量時間。

5、更輕鬆地維護和擴充套件

  使用Dockerfile,只需要小小的配置修改,就可以替代大量的更新操作。而且使用Dockerfile使映象構建透明化,不僅僅開發團隊可以理解應用執行環境,也方便運維團隊理解應用執行所需條件,幫助更好的生產環境中部署該映象。

   參考資源:《Docker技術入門與實戰》