?
? ????? PHP ??? ???? ??? ?? ??
本教程將向您介紹Docker Engine Swarm模式的功能。在開始之前,您可能想熟悉一下關(guān)鍵概念。
本教程將指導(dǎo)您完成以下活動(dòng):
以群集模式初始化Docker引擎群集
向群中添加節(jié)點(diǎn)
將應(yīng)用服務(wù)部署到群中
一旦你運(yùn)行了全部,管理群
本教程使用在終端窗口的命令行中輸入的Docker Engine CLI命令。您應(yīng)該能夠在網(wǎng)絡(luò)機(jī)器上安裝Docker,并且能夠在您選擇的外殼中運(yùn)行命令。
如果您是Docker的全新用戶,請(qǐng)參閱關(guān)于Docker Engine。
要運(yùn)行本教程,您需要以下內(nèi)容:
安裝了Docker的三臺(tái)Linux主機(jī),它們可以通過(guò)網(wǎng)絡(luò)進(jìn)行通信
Docker引擎1.12或更高版本安裝
管理器機(jī)器的IP地址
打開主機(jī)之間的端口
本教程需要三臺(tái)安裝了Docker并可通過(guò)網(wǎng)絡(luò)進(jìn)行通信的Linux主機(jī)。這些可以是物理機(jī)器,虛擬機(jī),Amazon EC2實(shí)例或以其他方式托管。您甚至可以使用Linux,Mac或Windows主機(jī)上的Docker Machine。檢查入門 - Swarms為主機(jī)設(shè)置一個(gè)可能的設(shè)置。
其中一臺(tái)機(jī)器將成為經(jīng)理(稱為manager1
),其中兩人將成為工人(worker1
和worker2
)。
注意:您也可以按照許多教程步驟來(lái)測(cè)試單節(jié)點(diǎn)群,在這種情況下,您只需要一臺(tái)主機(jī)。多節(jié)點(diǎn)命令不起作用,但您可以初始化群集,創(chuàng)建服務(wù)并對(duì)其進(jìn)行擴(kuò)展。
本教程需要在每臺(tái)主機(jī)上安裝Docker Engine 1.12或更高版本。安裝Docker Engine并驗(yàn)證Docker Engine守護(hù)進(jìn)程正在每臺(tái)機(jī)器上運(yùn)行。您可以按照以下方式獲取最新版本的Docker Engine:
在Linux機(jī)器上安裝Docker引擎
Mac使用Docker或Windows使用Docker
如果您使用基于Linux的物理計(jì)算機(jī)或云提供的計(jì)算機(jī)作為主機(jī),只需按照適用于您的平臺(tái)的Linux安裝說(shuō)明進(jìn)行操作即可。旋轉(zhuǎn)三臺(tái)機(jī)器,你就準(zhǔn)備好了。您可以在Linux機(jī)器上測(cè)試單節(jié)點(diǎn)和多節(jié)點(diǎn)swarm場(chǎng)景。
或者,在一臺(tái)計(jì)算機(jī)上安裝最新的Docker for Mac或Docker for Windows應(yīng)用程序。您可以從這臺(tái)計(jì)算機(jī)上測(cè)試單節(jié)點(diǎn)和多節(jié)點(diǎn)群集,但是您需要使用Docker Machine來(lái)測(cè)試多節(jié)點(diǎn)場(chǎng)景。
您可以使用Docker for Mac或Windows來(lái)測(cè)試群集模式的單節(jié)點(diǎn)功能,包括使用單節(jié)點(diǎn)初始化群集,創(chuàng)建服務(wù)以及擴(kuò)展服務(wù)。Hyperkit(Mac)或Hyper-V(Windows)上的Docker“Moby”將作為單個(gè)群集節(jié)點(diǎn)。
目前,您無(wú)法單獨(dú)使用Docker for Mac或Windows來(lái)測(cè)試多節(jié)點(diǎn)群。但是,您可以使用隨附的Docker Machine版本創(chuàng)建swarm節(jié)點(diǎn)(請(qǐng)參閱Docker Machine入門和本地VM),然后按照教程了解所有多節(jié)點(diǎn)功能。對(duì)于這種情況,您從一個(gè)碼頭工人的Mac或碼頭的Windows主機(jī)的命令,但碼頭工人主機(jī)本身不參與群(即,它不會(huì)manager1
,worker1
或worker2
在我們的例子)。創(chuàng)建節(jié)點(diǎn)后,可以運(yùn)行Mac終端或Windows PowerShell中顯示的所有swarm命令,其中Docker for Mac或Docker for Windows正在運(yùn)行。
IP地址必須分配給主機(jī)操作系統(tǒng)可用的網(wǎng)絡(luò)接口。群中的所有節(jié)點(diǎn)必須能夠通過(guò)IP地址訪問(wèn)管理器。
由于其他節(jié)點(diǎn)通過(guò)其IP地址聯(lián)系管理器節(jié)點(diǎn),因此應(yīng)使用固定的IP地址。
您可以ifconfig
在Linux或macOS上運(yùn)行以查看可用網(wǎng)絡(luò)接口的列表。
如果您使用的是Docker Machine,則可以使用docker-machine ls
或者docker-machine ip <MACHINE-NAME>
- 例如,來(lái)獲取管理器IP docker-machine ip manager1
。
本教程使用manager1
:192.168.99.100
。
以下端口必須可用。在某些系統(tǒng)上,這些端口默認(rèn)打開。
TCP端口2377用于集群管理通信
tcp和UDP端口7946用于節(jié)點(diǎn)間的通信
UDP端口4789用于覆蓋網(wǎng)絡(luò)流量
如果您計(jì)劃使用encryption(--opt encrypted
)創(chuàng)建覆蓋網(wǎng)絡(luò),則還需要確保允許ip協(xié)議50(ESP)通信。