Docker 入門之在swarm集羣中部署web應用

筆者近期在利用的docker搭建一個swarm集羣,目前的應用仍是入門級的,讀者可自行根據本身的須要修改本身須要部署的應用,今天筆者介紹的是一個web應用的swarm集羣的搭建。看這篇文章以前,我但願讀者把筆者前面兩篇文章都認真搭建一遍,由於今天的應用主要是基於前面兩篇文章的。node

一,理解swarm集羣web

一個swarm是一組運行docker的機器加入到一個集羣,這些機器能夠是虛擬的也能夠是物理的,這個集羣中只有一個swarm管理者,其餘的都是worker,它們統稱爲節點。docker

一個swarm管理者如何管理這些docker容器呢?這就涉及到swarm的調度方式。swarm有兩種調度方式,一種是「emptiest node」即最大限度的利用每一個機器,給一個機器儘量的分配足夠多的容器,另外一種是「global」即確保每臺機器至少運行一個容器。策略的選擇能夠經過改變docker-compose文件。ubuntu

一個swarm管理者能夠執行用戶的命令,或者認證加入進來swarm集羣的其餘worker節點,而worker節點只提供他的計算或者存儲等能力而不具有認證功能。如圖spa

二,準備工做(在兩臺物理機上部署)blog

1,安裝好docker compose組建。token

2,按照個人上兩篇文章將friendlyhello鏡像運行成功並上傳至本身的docker倉庫(可選,若是沒有,能夠push我倉庫中的鏡像,我已經設置成public了,鏡像名稱是:sunshine99/ubuntu1.1,在下載前你須要登錄本身的docker賬號哦,運行 docker login 而後輸入本身的用戶和密碼就行了)。ip

3,按照我上一篇文章的思路在本地調通了單主機的web應用。部署

4,兩臺主機需在同一個局域網下。get

三,步驟

1,在任意一臺主機上建立一個swarm管理者

docker swarm init --advertise-addr <ip>

(將ip替換成本身主機的ip地址便可)

仔細觀察運行後的輸出,它會告訴你其餘主機加入這個swarm集羣須要輸入的命令,命令格式爲:

docker swarm join --token <token>  <ip>:<port>

通常而言,若是是在多臺物理機上搭建swarm集羣,那麼port就是2377,若是是在docker虛擬機上搭建的,那麼port就是2376。

2,在另一臺機器上運行上述命令的輸出,若看到This node joined a swarm as a worker 恭喜你,最難的第一步已經建立成功。

3,部署本身的應用,我這裏選取的是一個web應用,這個鏡像已經在前面兩篇文章中建立好了,這裏我再貼一下這個docker-compose.yml文件。

將上述代碼保存爲docker-compose.yml,在manager節點的那臺機器上運行

docker stack deploy -c docker-compose.yml getstartedlab

其中getstartedlab是我給這個web應用取得名字。

4,運行成功後你能夠在manager節點的這臺機器上輸入命令進行驗證查看

docker stack ps getstartedlab

5,在兩臺機器上分別訪問該web網頁。

在網頁上輸入建立manager節點時設定的ip便可。

至此,一個簡單的web應用就部署在了swarm集羣上了。完整的流程截圖以下。

 

四,擴展或卸載應用

1,擴展應用

經過docker-compose.yml來擴展應用,修改好該文件後再在manager節點上運行一次

docker stack deploy -c docker-compose.yml getstartedlab

2,卸載應用

docker stack rm getstartedlab

退出集羣

分別在兩臺機器上運行docker swarm leave --force

 

本文參考了docker官網文獻,請勿轉載。

相關文章
相關標籤/搜索