?
本文檔使用 PHP中文網(wǎng)手冊 發(fā)布
本教程將向您介紹Docker Engine Swarm模式的功能。在開始之前,您可能想熟悉一下關(guān)鍵概念。
本教程將指導(dǎo)您完成以下活動:
以群集模式初始化Docker引擎群集
向群中添加節(jié)點(diǎn)
將應(yīng)用服務(wù)部署到群中
一旦你運(yùn)行了全部,管理群
本教程使用在終端窗口的命令行中輸入的Docker Engine CLI命令。您應(yīng)該能夠在網(wǎng)絡(luò)機(jī)器上安裝Docker,并且能夠在您選擇的外殼中運(yùn)行命令。
如果您是Docker的全新用戶,請參閱關(guān)于Docker Engine。
要運(yùn)行本教程,您需要以下內(nèi)容:
安裝了Docker的三臺Linux主機(jī),它們可以通過網(wǎng)絡(luò)進(jìn)行通信
Docker引擎1.12或更高版本安裝
管理器機(jī)器的IP地址
打開主機(jī)之間的端口
本教程需要三臺安裝了Docker并可通過網(wǎng)絡(luò)進(jìn)行通信的Linux主機(jī)。這些可以是物理機(jī)器,虛擬機(jī),Amazon EC2實(shí)例或以其他方式托管。您甚至可以使用Linux,Mac或Windows主機(jī)上的Docker Machine。檢查入門 - Swarms為主機(jī)設(shè)置一個可能的設(shè)置。
其中一臺機(jī)器將成為經(jīng)理(稱為manager1
),其中兩人將成為工人(worker1
和worker2
)。
注意:您也可以按照許多教程步驟來測試單節(jié)點(diǎn)群,在這種情況下,您只需要一臺主機(jī)。多節(jié)點(diǎn)命令不起作用,但您可以初始化群集,創(chuàng)建服務(wù)并對其進(jìn)行擴(kuò)展。
本教程需要在每臺主機(jī)上安裝Docker Engine 1.12或更高版本。安裝Docker Engine并驗(yàn)證Docker Engine守護(hù)進(jìn)程正在每臺機(jī)器上運(yùn)行。您可以按照以下方式獲取最新版本的Docker Engine:
在Linux機(jī)器上安裝Docker引擎
Mac使用Docker或Windows使用Docker
如果您使用基于Linux的物理計(jì)算機(jī)或云提供的計(jì)算機(jī)作為主機(jī),只需按照適用于您的平臺的Linux安裝說明進(jìn)行操作即可。旋轉(zhuǎn)三臺機(jī)器,你就準(zhǔn)備好了。您可以在Linux機(jī)器上測試單節(jié)點(diǎn)和多節(jié)點(diǎn)swarm場景。
或者,在一臺計(jì)算機(jī)上安裝最新的Docker for Mac或Docker for Windows應(yīng)用程序。您可以從這臺計(jì)算機(jī)上測試單節(jié)點(diǎn)和多節(jié)點(diǎn)群集,但是您需要使用Docker Machine來測試多節(jié)點(diǎn)場景。
您可以使用Docker for Mac或Windows來測試群集模式的單節(jié)點(diǎn)功能,包括使用單節(jié)點(diǎn)初始化群集,創(chuàng)建服務(wù)以及擴(kuò)展服務(wù)。Hyperkit(Mac)或Hyper-V(Windows)上的Docker“Moby”將作為單個群集節(jié)點(diǎn)。
目前,您無法單獨(dú)使用Docker for Mac或Windows來測試多節(jié)點(diǎn)群。但是,您可以使用隨附的Docker Machine版本創(chuàng)建swarm節(jié)點(diǎn)(請參閱Docker Machine入門和本地VM),然后按照教程了解所有多節(jié)點(diǎn)功能。對于這種情況,您從一個碼頭工人的Mac或碼頭的Windows主機(jī)的命令,但碼頭工人主機(jī)本身不參與群(即,它不會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)必須能夠通過IP地址訪問管理器。
由于其他節(jié)點(diǎn)通過其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>
- 例如,來獲取管理器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)通信。