docker工具鏈概述
目錄
docker工具鏈概述
ofollow,noindex" target="_blank">官方參考文件
本文主要介紹docker是什麼,有什麼,以及工具鏈的概述。
docker是一個比較新容器技術,當然容器技術並不是什麼新技術,如果你沒有接觸過容器的概念,可能你有種一夜之間容器遍天下的感覺。 我最早接觸docker也是2015前後,一次偶然的機會去嘗試cloud foundry,便得知了容器是何物,遇見docker後甚是喜愛,因為工作環境一直不得嘗試,所以一直不能深入的去研究它,今天的docker與幾年前相比已經有了很大的變化,各種工具鏈都相對完善,技術也相對成熟,隨著微服務的誕生,docker的應用場景更是被髮揮的淋漓盡致,如果你沒有趕上又醜又龐大的企業級應用,那麼此刻短小精悍的微服務時代你可以盡情體驗一番。
docker名詞解釋
- docker官方解釋為docker引擎,一個集client與server一身的容器技術。
- docker映象,比如一個系統iso檔案,通常被叫做映象,它只是一個靜態檔案而已。
- docker容器,當一個iso檔案被安裝硬碟上後就成一個系統,你可以將這個iso安裝到多個硬碟上,那麼每個系統就對應著docker容器的概念,或者你也可以理解成例項,容器(例項)是動態的而映象是靜態的。
docker簡介
- docker是一個容器化技術,用來管理容器,那麼作為容器,它可以容納一個或多個程式。
- docker容器是一個獨立程式,什麼叫獨立的程式,它可以打包你的程式並與系統內的其它程式之間隔離,隔離邊界就是docker容器本身。
- docker容器是一個可以執行的完整的整體,建立docker容器的時候,docker會打包你在容器內要執行的程式以及程式的所有依賴(當然這不是自動的,docker需要你明確指出你的程式依賴什麼) 。
- docker容器是一個跨平臺應用,docker容器可以執行在unix/linux/win等平臺(但是win容器與unix/linux不相容,docker最初只支援linux核心) ,docker容器不依賴你的當前系統,只依賴docker引擎本身(docker引擎是docker的簡稱) 。
docker-machine簡介
- docker-machine用來建立docker執行環境,你可以使用docker-machine建立基於的docker執行環境,這裡的驅動是指多種虛擬機器環境,比如:virtualbox,vm,hyper-v等,更多驅動型別在這裡。
- docker-machine用來管理docker執行環境,如果你在上一步中建立了多種驅動型別的docker執行環境,那麼docker-machine可以來管理這些docker執行環境,比如檢視環境資訊,比如刪除、修改環境,比如在指定的docker執行環境中執行shell命令等。
docker-compose簡介
docker-compose主要用來建立docker容器,可能你要問,既然docker可以建立容器為什麼還要docker-compose呢?
舉個例子:使用shell命令建立一個資料夾,並在資料夾內建立一個檔案,只需要執行兩條shell命令即可,如果讓你在另外的很多機器上也做同樣的操作呢?難道你要每個機器都手動輸入命令嗎?答案是否定的,你肯定想到的是使用shell指令碼解決問題,將建立資料夾和建立檔案的命令寫入指令碼中並將指令碼分發到不同的機器上執行。沒錯docker-compose就是用來幹這個的,你可以將需要建立的一個或多個容器寫入一個docker-compose支援的指令碼中。
其實docker-compose支援的是一個yml擴充套件的檔案,這裡記錄了你要建立的一個或多個容器的配置資訊,這樣就可以將yml檔案分發到不同的機器上並通過docker-compoe建立容器。
docker swarm簡介
docker swarm用來管理docker叢集,當我們來部署一個服務的時候,我們通常會考慮服務會不會因為特殊情況終止執行,為了避免特殊情況導致的服務終止,通常一個常用的辦法就是監控,如果服務意外終止我們就重新啟動它,這也是docker swarm要做的事,除此之外docker swarm還會將服務部署到任意一叢集節點中,保證服務始終可用。
docker service簡介
docker service用來建立docker服務,那麼什麼是docker 服務,假如你要部署一個docker容器,你通常可以執行docker run命令,如果此時在一個docker叢集中,那麼該命令只會在執行命令的機器上建立一個容器,如果你要部署的是docker容器的多個例項,那麼docker service就是來解決這個問題的,你只需要通過docker service run命令就可以在叢集的任意節點上部署你的容器例項,你也可以指定需要執行的容器例項個數,這通常只需設定指定的引數就行了。
docker stack簡介
此時,我還不是特別明白docker stack的作用,從官網的介紹我理解為docker compose
+docker swarm
,這個解釋似乎有點牽強,暫時先這麼理解吧,畢竟docker stack在docker swarm環境下才有意義,以後理解了在更新這段簡介。
總結
docker中的一些工具及感念大概也就這麼多,這裡只是簡單的介紹了一下,如果你是新手那麼這篇文章一定對你有很多的幫助,因為我也是這麼走過來的,不期望自己的文章多高深,只希望能你讓你快速的理解docker是什麼。
回顧一下:
docker是一個集client與server一身的容器化技術,你可以通過docker命令來建立一些docker容器,你也可通過docker compose命令來批量建立一些docker容器,如果你的環境足夠大,那麼docker swarm可以讓你對docker的管理更加方便,docker service可以讓你建立可靠的服務例項,docker stack可以讓你更方便的部署docker容器。