Docker學習之Docker Swarm

Docker Swarm 是 Docker 官方三劍客項目之一,提供 Docker 容器集羣服務,是 Docker 官方對容器雲生態進行支持的核心方案。
使用它,用戶能夠將多個 Docker 主機封裝爲單個大型的虛擬 Docker 主機,快速打造一套容器雲平臺。

基本概念

Swarm 是使用 SwarmKit 構建的 Docker 引擎內置(原生)的集羣管理和編排工具。使用 Swarm 集羣以前須要瞭解如下幾個概念。node

節點

運行 Docker 的主機能夠主動初始化一個 Swarm 集羣或者加入一個已存在的 Swarm 集羣,這樣這個運行 Docker 的主機就成爲一個 Swarm 集羣的節點 ( node ) 。
節點分爲管理 ( manager ) 節點和工做 ( worker ) 節點
管理節點用於 Swarm 集羣的管理, docker swarm 命令基本只能在管理節點執行(節點退出集羣命令 docker swarm leave 能夠在工做節點執行)。一個 Swarm 集羣能夠有多個管理節點,但只有一個管理節點能夠成爲 leader , leader 經過 raft 協議實現。
工做節點是任務執行節點,管理節點將服務 ( service ) 下發至工做節點執行。管理節點默認也做爲工做節點。你也能夠經過配置讓服務只運行在管理節點。
來自 Docker 官網的這張圖片形象的展現了集羣中管理節點與工做節點的關係
集羣中管理節點與工做節點的關係git

服務和任務

任務 ( Task )是 Swarm 中的最小的調度單位,目前來講就是一個單一的容器。
服務 ( Services ) 是指一組任務的集合,服務定義了任務的屬性。服務有兩種模式:github

  • replicated services 按照必定規則在各個工做節點上運行指定個數的任務。
  • global services 每一個工做節點上運行一個任務

容器、服務、任務的關係

建立 Swarm 集羣

先來建立一個包含一個管理節點和兩個工做節點的最小 Swarm 集羣。docker

初始化集羣

若是沒有安裝docker machine的話能夠先進行安裝:curl

sudo curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine

docker-machine的安裝

首先建立一個 Docker 主機做爲管理節點工具

相關文章
相關標籤/搜索