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
先來建立一個包含一個管理節點和兩個工做節點的最小 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 主機做爲管理節點。工具