你以為看錯標題了嗎?沒有哦~就是 docker 沒錯,為了延續後面我要講一些插件與優化配置的方式,這邊必須簡單提一下 docker 讓後面在能夠比較簡單的銜接上,真的是簡單講一下因為接觸 docker 時間不夠長,讓我們快速走過吧。
Docker 是一種已被廣泛使用的虛擬方式,跟一些舊有的虛擬方式相比他有以下優勢
三個你必須知道的 docker 要素 :
Docker 映像檔就是一個唯讀的模板。
例如:一個映像檔可以包含一個完整的 ubuntu 作業系統環境,裡面僅安裝了 Apache 或使用者需要的其它應用程式。映像檔可以用來建立 Docker 容器。Docker 提供了一個很簡單的機制來建立映像檔或者更新現有的映像檔,使用者甚至可以直接從其他人那裡下載一個已經做好的映像檔來直接使用。
這個特性對我們來說很方便,尤其是之後我們想要快速增加 elasticsearch cluster nodes 的時候!
Docker 利用容器來執行應用。容器是從映像檔建立的執行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平台。可以把容器看做是一個簡易版的 Linux 環境(包括root使用者權限、程式空間、使用者空間和網路空間等)和在其中執行的應用程式。
容器乾淨的分離方式有助於我們在版本更新或錯誤發生時,能快速進行抽換容器減少服務更新或還原時間。
倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。
- 公開倉庫像是 Docker Hub,存放了數量龐大的映像檔供使用者下載
- 使用者也可以在本地網路內建立一個私有倉庫。
Docker 倉庫的概念跟 Git 類似,註冊伺服器可以理解為 GitHub 這樣的託管服務。當使用者建立了自己的映像檔之後就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一台機器上使用這個映像檔時候,只需要從倉庫上 pull 下來就可以了。
這也是他易於拓展的原因,不論是想在公開或私有的網路環境部署,都可以輕易地取得相同的映像檔部署在不同機器上。
基於上述多種理由決定將我們的 E.L.K 以 docker 虛擬機的方式運行,犧牲一點效能雖然沒有原生效能來得好,但能夠讓我們更靈活的配置架構也算是值得的哦!