1. 程式人生 > >docker工具鏈概述

docker工具鏈概述

dry 寫入 靜態文件 不能 而已 機會 信息 so文件 com

目錄

  • docker工具鏈概述
    • docker名詞解釋
    • docker簡介
    • docker-machine簡介
    • docker-compose簡介
    • docker swarm簡介
      • docker service簡介
      • docker stack簡介
    • 總結

docker工具鏈概述

官方參考文檔

? 本文主要介紹docker是什麽,有什麽,以及工具鏈的概述。

? docker是一個比較新容器技術,當然容器技術並不是什麽新技術,如果你沒有接觸過容器的概念,可能你有種一夜之間容器遍天下的感覺。 我最早接觸docker也是2015前後,一次偶然的機會去嘗試cloud foundry,便得知了容器是何物,遇見docker後甚是喜愛,因為工作環境一直不得嘗試,所以一直不能深入的去研究它,今天的docker與幾年前相比已經有了很大的變化,各種工具鏈都相對完善,技術也相對成熟,隨著微服務的誕生,docker的應用場景更是被發揮的淋漓盡致,如果你沒有趕上又醜又龐大的企業級應用,那麽此刻短小精悍的微服務時代你可以盡情體驗一番。

docker名詞解釋

  1. docker官方解釋為docker引擎,一個集client與server一身的容器技術。
  2. docker鏡像,比如一個系統iso文件,通常被叫做鏡像,它只是一個靜態文件而已。
  3. docker容器,當一個iso文件被安裝硬盤上後就成一個系統,你可以將這個iso安裝到多個硬盤上,那麽每個系統就對應著docker容器的概念,或者你也可以理解成實例,容器(實例)是動態的而鏡像是靜態的。

docker簡介

  1. docker是一個容器化技術,用來管理容器,那麽作為容器,它可以容納一個或多個程序。
  2. docker容器是一個獨立程序,什麽叫獨立的程序,它可以打包你的程序並與系統內的其它程序之間隔離,隔離邊界就是docker容器本身。
  3. docker容器是一個可以執行的完整的整體,創建docker容器的時候,docker會打包你在容器內要運行的程序以及程序的所有依賴(當然這不是自動的,docker需要你明確指出你的程序依賴什麽)
  4. docker容器是一個跨平臺應用,docker容器可以運行在unix/linux/win等平臺(但是win容器與unix/linux不兼容,docker最初只支持linux內核),docker容器不依賴你的當前系統,只依賴docker引擎本身(docker引擎是docker的簡稱)

docker-machine簡介

  1. docker-machine用來創建docker運行環境,你可以使用docker-machine創建基於的docker運行環境,這裏的驅動是指多種虛擬機環境,比如:virtualbox,vm,hyper-v等,更多驅動類型在這裏。
  2. 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容器。

docker工具鏈概述