1. 程式人生 > >Docker基礎概念

Docker基礎概念

 

一、什麼是Docker?

  Docker 是一個基於Go語言實現的開源應用容器專案,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux機器上,也可以實現虛擬化。Docker的構想是要實現對應用元件級別的“一次封裝、到處執行”,這裡的應用元件,既可以是一個Web應用、一個編譯環境,也可以是一套資料庫平臺服務,甚至是一個作業系統或叢集。

  Docker的誕生在Linxu容器(LXC)之上的。在LXC的基礎上,Docker進一步優化了容器的使用體驗。Docker提供了各種容器管理工具,讓使用者無需關注底層的操作,更加簡明地管理和使用容器。

二、為什麼使用Docker?

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

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

2、輕鬆地應用遷移

  在雲時代,開發者建立的應用必須要能夠很方便地在網路上傳播,也就是必須脫離底層物理硬體的限制。以傳統的方式進行應用遷移時,必須保證新宿主機與原來的機器環境一致,就需要搭建環境、部署專案、除錯等一系列操作,費時費力。而Docker通過容器來打包應用、使應用和機器環境解耦,遷移的時候只需要在新的伺服器上啟動容器即可。

3、更快的啟動時間

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

4、一致的執行環境

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

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

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

三、Docker的三大核心概念

1、映象

  Docker映象是一個類似於虛擬機器映象,可以將它理解為一個只讀的模板,它是建立Docker容器的基礎。通過版本管理和增量的檔案系統,Docker提供了一套十分簡單的機制來建立和更新現有的映象。

2、容器

  Docker容器是映象的一個執行例項,映象是隻讀的,容器在映象的最上層建立了一個可寫層。Docker容器類似於一個輕量級的沙盒,Docker利用容器來執行和隔離應用。一個Docker容器中只有執行在容器中的應用(程序)和其必須依賴的執行時環境。

3、倉庫 

  Docker倉庫類似於程式碼倉庫,是Docker集中存放映象檔案的場所。

  有時候容易把Docker倉庫和註冊伺服器混淆。實際上註冊伺服器是存放Dokcer倉庫的具體伺服器,一個註冊伺服器下可以有多個倉庫,一個倉庫下面可以有多個映象。例如,registry.hub.docker.com是註冊伺服器地址,ubuntu是倉庫名,18.04是倉庫下面具體的一個映象。

 

後記:

  本篇內容只是筆者在學習Docker時的筆記整理,內容簡短,且沒有三大核心概念其命令的介紹。見者勿怪。