【入門級】docker基礎知識學習與使用(二)

docker簡介
Docker是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

我們一開始選擇相對基礎的docker,而不是一上來就K8S,主要是爲了能夠儘量學習到基礎的相關知識,然後再學K8S就會比較得心應手。

Docker分成兩個版本,分別是CE和EE:

Community Edition (CE) 簡稱社區版

Enterprise Edition (EE) 檢查企業版

不用多說,我們肯定用社區版,接下來的後續文章我們都是採用CE版本。
 

docker架構
docker引擎是一個場景的CS架構,外層是CLI,中間是API層,最裏面是核心組件,如下圖所示:

docker的架構和實際使用可以參考下圖:

docker的幾個重要概念:

1.Registry
Docker倉庫用來保存鏡像,可以理解爲代碼控制中的代碼倉庫。
Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。

2.Image
Docker鏡像是用於創建 Docker 容器的模板。

3.Container
容器是獨立運行的一個或一組應用。

4.Host
一個物理或者虛擬的機器用於執行 Docker 守護進程和容器。

5.Daemon
docker的後臺服務進程dockerd。

6.Client
Docker客戶端通過命令行或者其他工具使用 Docker API 與 Docker 的守護進程通信。

 
docker安裝

我們以Ubuntu 18.04爲例子,安裝docker是比較簡單的命令如下:


 

docker的簡單使用

我們暫時還不打算講解如何做鏡像,先以用爲主,用熟了再學如何製作自己的鏡像。容器的思想很簡單,就是Build once,Run anywhere,從上面的架構圖可以看到,最簡單核心的流程就是build>pull>run,build就是製作鏡像,pull就是從鏡像hub獲取指定鏡像,最後一步就是run把鏡像跑起來。

由於build製作鏡像稍微有點複雜,我們就先跳過,直接從pull和run開始,直接使用https://hub.docker.com/上面別人做好的。


 

瞭解run機制

從字面上講,run只是跑起一個鏡像實例,實際上內部可以分爲兩個步驟,第一步是把鏡像裝入容器並創建實例(我們可以稱之爲create),第二步就是把裝入了鏡像的容器實例跑起來(我們可以稱之爲start)。

我們先做一個試驗,我們執行兩次docker run hello-world

這樣的輸出結果,我們可以得知,原來每run一次,都會重新創建一個新的容器實例,如果我們要把容器實例停止或者開啓,應該是用stop和start,刪除實例我們可以用rm,具體看下面的演示:

可以看到容器實例目前就只剩下一個了,我們可以再對剩下的容器進行stop和start測試。瞭解這個run機制非常關鍵,這也是筆者一開始接觸和學習的時候所踩過的坑,一直覺得run就是運行的意思,多次run都是運行同一個實例,因此先把run的機制搞懂是很基礎和很關鍵的。今天就先到這,下期我們繼續深入學習docker的使用。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章