docker簡介
Docker是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
公司主營業(yè)務:網(wǎng)站建設、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出駐馬店免費做網(wǎng)站回饋大家。
我們一開始選擇相對基礎的docker,而不是一上來就K8S,主要是為了能夠盡量學習到基礎的相關知識,然后再學K8S就會比較得心應手。
Docker分成兩個版本,分別是CE和EE:
Community Edition (CE) 簡稱社區(qū)版
Enterprise Edition (EE) 檢查企業(yè)版
不用多說,我們肯定用社區(qū)版,接下來的后續(xù)文章我們都是采用CE版本。
?
docker架構
docker引擎是一個場景的CS架構,外層是CLI,中間是API層,最里面是核心組件,如下圖所示:
docker的架構和實際使用可以參考下圖:
docker的幾個重要概念:
1.Registry
Docker倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫。
Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。
2.Image
Docker鏡像是用于創(chuàng)建 Docker 容器的模板。
3.Container
容器是獨立運行的一個或一組應用。
4.Host
一個物理或者虛擬的機器用于執(zhí)行 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只是跑起一個鏡像實例,實際上內(nèi)部可以分為兩個步驟,第一步是把鏡像裝入容器并創(chuàng)建實例(我們可以稱之為create),第二步就是把裝入了鏡像的容器實例跑起來(我們可以稱之為start)。
我們先做一個試驗,我們執(zhí)行兩次docker run hello-world
這樣的輸出結果,我們可以得知,原來每run一次,都會重新創(chuàng)建一個新的容器實例,如果我們要把容器實例停止或者開啟,應該是用stop和start,刪除實例我們可以用rm,具體看下面的演示:
可以看到容器實例目前就只剩下一個了,我們可以再對剩下的容器進行stop和start測試。了解這個run機制非常關鍵,這也是筆者一開始接觸和學習的時候所踩過的坑,一直覺得run就是運行的意思,多次run都是運行同一個實例,因此先把run的機制搞懂是很基礎和很關鍵的。今天就先到這,下期我們繼續(xù)深入學習docker的使用。